人形大宝宝看到不要生气哈,毕竟你看剧啦,哈哈哈哈


神途

这是一款类似于传奇的游戏,其中有很多的奖励丰富的BOSS,而且刷新很有规律,规律如下

  • 从死亡开始计时
  • 默认一般为半小时
  • 半小时后在死亡地点附近进行复活刷新。

计时器

利用这里特点,我们就可以自己做一个计时器,来记录BOSS的相关信息。

因为这个本来不想发的,但是想到以后应该还会再写类似的冬冬,所以我把这个发上来,记录一下。

数据库建表

我们需要有以下信息进行保存。

以下是建表的SQL语句

/*
SQLyog Ultimate v12.09 (64 bit)
MySQL - 5.5.22 : Database - game
*********************************************************************
*//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`game` /*!40100 DEFAULT CHARACTER SET gbk */;USE `game`;/*Table structure for table `shentu` */DROP TABLE IF EXISTS `shentu`;CREATE TABLE `shentu` (`name` varchar(100) NOT NULL COMMENT '怪兽名字',`map` varchar(100) DEFAULT NULL COMMENT '地图名字',`time` varchar(100) DEFAULT NULL COMMENT '死亡时间',`x` varchar(20) DEFAULT NULL COMMENT 'x坐标',`y` varchar(20) DEFAULT NULL COMMENT 'y坐标',`time2` varchar(100) DEFAULT NULL COMMENT '下一次刷新时间',`time3` varchar(20) DEFAULT NULL COMMENT '刷新间隔',PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;/*Data for the table `shentu` */insert  into `shentu`(`name`,`map`,`time`,`x`,`y`,`time2`,`time3`) values ('福利怪_01','贵族寝宫','1:37:35','95','151','2:7:35','30'),('福利怪_02','贵族寝宫','1:40:37','141','106','2:10:38','30'),('福利怪_03','英雄本色-专属','1:43:17','28','56','2:13:17','30'),('煞·破军_01','贵宾寝宫','1:4:11','94','118',NULL,NULL),('玄·圣君_01','贵族寝宫','1:34:22','89','67',NULL,NULL);/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

Java数据库操作

这个是以前写好的一个操作类,直接拿过来。

数据库链接信息.properties

drivers = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/game?characterEncoding=UTF-8
user = ****
passwd = ******

DBMap.java

/** To change this license header, choose License Headers in Project Properties.* To change this template file, choose Tools | Templates* and open the template in the editor.*/
package db;import java.util.HashMap;
import java.util.LinkedList;
import java.util.Set;/**** @author lol*/
public class DBMap extends HashMap<String, LinkedList<Object> > {public DBMap() {super();}public static int getLength(DBMap m) {return m.values().iterator().next().size();}public static LinkedList<LinkedList<Object> > toHigh(DBMap m) {LinkedList<LinkedList<Object> > list = new LinkedList();Set<String> set = m.keySet();for(String str : set) {list.add(m.get(str));}return list;}public static LinkedList<LinkedList<Object> > toRow(DBMap m) {LinkedList<LinkedList<Object> > list = new LinkedList();LinkedList<LinkedList<Object> > hList = toHigh(m);LinkedList<Object> [] gList = hList.toArray(new LinkedList[0]);Object [][] g = new Object[gList.length][];for (int i = 0; i < gList.length; i++) {g[i] = gList[i].toArray();}int size = DBMap.getLength(m);for (int i = 0; i < size; i++) {LinkedList<Object> tList = new LinkedList();int length = m.size();for (int j = 0; j < length; j++) {tList.add(g[j][i]);}list.add(tList);}return list;}
}

DBMan.java

package db;import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.Properties;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;public class DBMan {private String drivers;private String url;private String user;private String passwd;private Connection conn;private PreparedStatement stmt;private ResultSet rs;private static DBMan instance;private DBMan() throws IOException {reload();}public void reload() throws IOException {InputStream in = DBMan.class.getResourceAsStream("./数据库链接信息.properties");Properties pro = new Properties();pro.load(in);drivers = pro.getProperty("drivers");url = pro.getProperty("url");user = pro.getProperty("user");passwd = pro.getProperty("passwd");}public static DBMan getInstance() throws IOException {if (instance == null) {instance = new DBMan();}return instance;}public void display(DBMap map, PrintStream out, String... str) {if (map == null) {return;}LinkedList[] q = new LinkedList[map.size()];int col = str.length;String temp = new String();// 打印表头,并决定要输出的数据是那些。if (col == 0) {Set<String> set = map.keySet();for (String s : set) {q[col++] = map.get(s);temp += s + "\t";}} else {for (int i = 0; i < col; i++) {q[i] = map.get(str[i]);temp += str[i] + "\t";}}int row = q[0].size();out.println(temp);for (int i = 0; i < row; i++) {temp = new String();for (int j = 0; j < col; j++) {temp += q[j].get(i) + "\t";}out.println(temp);}}public synchronized DBMap query(String sql, Object... obj) throws ClassNotFoundException, SQLException {try {DBMap map = new DBMap();open();stmt = conn.prepareStatement(sql);for (int i = 0; i < obj.length; i++) {stmt.setObject(i + 1, obj[i]);}rs = stmt.executeQuery();LinkedList<String> list = new LinkedList();// 存储表头名称int col = rs.getMetaData().getColumnCount();// 获取列数// 根据表头名称建立键值对for (int i = 0; i < col; i++) {LinkedList<Object> tList = new LinkedList();list.add(rs.getMetaData().getColumnName(i + 1));map.put(list.getLast(), tList);}while (rs.next()) {for (int i = 0; i < col; i++) {LinkedList<Object> tList = map.get(list.get(i));tList.add(rs.getObject(i + 1));}}close();return map;} catch (SQLException ex) {close();throw ex;} catch (ClassNotFoundException ex) {close();throw ex;}}public synchronized boolean update(String sql, Object... obj) throws ClassNotFoundException, SQLException {try {open();stmt = conn.prepareStatement(sql);for (int i = 0; i < obj.length; i++) {stmt.setObject(i + 1, obj[i]);}stmt.executeUpdate();close();return true;} catch (ClassNotFoundException ex) {close();throw ex;} catch (SQLException ex) {close();throw ex;}}private synchronized void open() throws ClassNotFoundException, SQLException {Class.forName(drivers);conn = DriverManager.getConnection(url, user, passwd);conn.setAutoCommit(true);}private synchronized void close() {try {stmt.close();conn.close();} catch (SQLException ex) {}}
}

接着定义数据类和DAO类

Boss.java

/** To change this license header, choose License Headers in Project Properties.* To change this template file, choose Tools | Templates* and open the template in the editor.*/
package boss;/**** @author lol*/
public class Boss {String name;String map;int x;int y;String time;String time2;String time3;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getMap() {return map;}public void setMap(String map) {this.map = map;}public int getX() {return x;}public void setX(int x) {this.x = x;}public int getY() {return y;}public void setY(int y) {this.y = y;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}public String getTime2() {return time2;}public void setTime2(String time2) {this.time2 = time2;}public String getTime3() {return time3;}public void setTime3(String time3) {this.time3 = time3;}public Boss(String name, String map, int x, int y, String time) {this.name = name;this.map = map;this.x = x;this.y = y;this.time = time;}}

BossControl .java

/** To change this license header, choose License Headers in Project Properties.* To change this template file, choose Tools | Templates* and open the template in the editor.*/
package boss;import db.DBMan;
import db.DBMap;
import java.io.IOException;
import java.sql.SQLException;
import java.util.LinkedList;public class BossControl {public static void add(Boss e) throws SQLException, IOException, ClassNotFoundException {String sql = "insert into shentu(name, map, time, time2, time3, x, y) value(?,?,?,?,?,?,?)";DBMan db = DBMan.getInstance();db.update(sql, e.getName(), e.getMap(), e.getTime(), e.getTime2(), e.getTime3(), e.getX(), e.getY());}public static void update(Boss e) throws SQLException, IOException, ClassNotFoundException {String sql = "UPDATE shentu SET map = ?, time = ?, time2 = ?, time3 = ?, x = ?, y = ? WHERE name = ?";DBMan db = DBMan.getInstance();db.update(sql, e.getMap(), e.getTime(), e.getTime2(), e.getTime3(), e.getX(), e.getY(), e.getName());}public static void delete(String name) throws IOException, SQLException, ClassNotFoundException {String sql = "delete from shentu where name=?";DBMan db = DBMan.getInstance();db.update(sql, name);}}

GUI制作

直接使用NetBeans的可视化编程即可。

MainFrame.java

/** To change this license header, choose License Headers in Project Properties.* To change this template file, choose Tools | Templates* and open the template in the editor.*/
package main;import boss.Boss;
import boss.BossControl;
import db.DBMan;
import db.DBMap;
import gui.TextJDialog;
import java.io.IOException;
import java.sql.SQLException;
import java.sql.Time;
import java.util.Date;
import java.util.LinkedList;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.SpinnerNumberModel;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableModel;/**** @author lol*/
public class MainFrame extends javax.swing.JFrame {JFrame f;/*** Creates new form MainFrame*/public MainFrame() {f = this;initComponents();init();}/*** This method is called from within the constructor to initialize the form.* WARNING: Do NOT modify this code. The content of this method is always* regenerated by the Form Editor.*/@SuppressWarnings("unchecked")// <editor-fold defaultstate="collapsed" desc="Generated Code">                          private void initComponents() {jScrollPane1 = new javax.swing.JScrollPane();jTable1 = new javax.swing.JTable();jLabel1 = new javax.swing.JLabel();jLabel2 = new javax.swing.JLabel();jLabel3 = new javax.swing.JLabel();jLabel4 = new javax.swing.JLabel();timeText = new javax.swing.JTextField();nameText = new javax.swing.JTextField();yText = new javax.swing.JSpinner();xText = new javax.swing.JSpinner();jButton1 = new javax.swing.JButton();mapText = new javax.swing.JTextField();time2Text = new javax.swing.JTextField();jLabel5 = new javax.swing.JLabel();jLabel6 = new javax.swing.JLabel();time3Text = new javax.swing.JSpinner();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());jTable1.setModel(new javax.swing.table.DefaultTableModel(new Object [][] {{null, null, null, null},{null, null, null, null},{null, null, null, null},{null, null, null, null}},new String [] {"Title 1", "Title 2", "Title 3", "Title 4"}));jScrollPane1.setViewportView(jTable1);getContentPane().add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 260, 340, 350));jLabel1.setFont(new java.awt.Font("宋体", 0, 18)); // NOI18NjLabel1.setText("怪兽名字");getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 10, -1, 32));jLabel2.setFont(new java.awt.Font("宋体", 0, 18)); // NOI18NjLabel2.setText("地图名字");getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 49, -1, 32));jLabel3.setFont(new java.awt.Font("宋体", 0, 18)); // NOI18NjLabel3.setText("位置坐标");getContentPane().add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 88, -1, 32));jLabel4.setFont(new java.awt.Font("宋体", 0, 18)); // NOI18NjLabel4.setText("刷新时间(30分)");getContentPane().add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 170, -1, 32));timeText.setFont(new java.awt.Font("宋体", 0, 18)); // NOI18NtimeText.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {timeTextActionPerformed(evt);}});getContentPane().add(timeText, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 130, 210, 32));nameText.setFont(new java.awt.Font("宋体", 0, 18)); // NOI18NnameText.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {nameTextActionPerformed(evt);}});getContentPane().add(nameText, new org.netbeans.lib.awtextra.AbsoluteConstraints(91, 11, 260, 32));getContentPane().add(yText, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 90, 110, 32));getContentPane().add(xText, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 90, 110, 32));jButton1.setText("确认");jButton1.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jButton1ActionPerformed(evt);}});getContentPane().add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(250, 210, 100, 40));mapText.setFont(new java.awt.Font("宋体", 0, 18)); // NOI18NmapText.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {mapTextActionPerformed(evt);}});getContentPane().add(mapText, new org.netbeans.lib.awtextra.AbsoluteConstraints(91, 50, 260, 32));time2Text.setFont(new java.awt.Font("宋体", 0, 18)); // NOI18Ntime2Text.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {time2TextActionPerformed(evt);}});getContentPane().add(time2Text, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 170, 210, 30));jLabel5.setFont(new java.awt.Font("宋体", 0, 18)); // NOI18NjLabel5.setText("刷新时间");getContentPane().add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 210, 80, 40));jLabel6.setFont(new java.awt.Font("宋体", 0, 18)); // NOI18NjLabel6.setText("死亡时间(30分)");getContentPane().add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 130, 130, 32));time3Text.setValue(30);getContentPane().add(time3Text, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 210, 150, 40));pack();}// </editor-fold>                        private void timeTextActionPerformed(java.awt.event.ActionEvent evt) {                                         // TODO add your handling code here:}                                        private void nameTextActionPerformed(java.awt.event.ActionEvent evt) {                                         // TODO add your handling code here:}                                        private Boss getBoss() {String name = nameText.getText();String map = mapText.getText();int x = Integer.parseInt(xText.getValue().toString());int y = Integer.parseInt(yText.getValue().toString());String time = String.valueOf(timeText.getText());return new Boss(name, map, x, y, time);}// 显示点击的客户信息public void showItem(int row) {TableModel m = jTable1.getModel();nameText.setText(m.getValueAt(row, 1).toString());mapText.setText(m.getValueAt(row, 4).toString());xText.setValue(Integer.parseInt(m.getValueAt(row, 2).toString()));yText.setValue(Integer.parseInt(m.getValueAt(row, 3).toString()));}private void save() {Boss boss = getBoss();long time = new Date().getTime();time += Long.parseLong(time3Text.getValue().toString()) * 60 * 1000;Date d = new Date(time);boss.setTime2(String.valueOf(d.getHours()) + ":" + String.valueOf(d.getMinutes()) + ":" + String.valueOf(d.getSeconds()));boss.setTime3(time3Text.getValue().toString());try {BossControl.add(boss);} catch (SQLException | IOException | ClassNotFoundException ex) {try {System.out.println("已经存在,进行修改" + ex.getMessage());BossControl.update(boss);} catch (SQLException | IOException | ClassNotFoundException ex1) {System.out.println("数据库出错---" + ex1.getMessage() + "\n");}}init();JOptionPane.showMessageDialog(this, "操作成功!", "提示", JOptionPane.INFORMATION_MESSAGE);}private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         save();}                                        private void mapTextActionPerformed(java.awt.event.ActionEvent evt) {                                        // TODO add your handling code here:}                                       private void time2TextActionPerformed(java.awt.event.ActionEvent evt) {                                          // TODO add your handling code here:}                                         public void init() {String sql = "select name, map, time2, x, y  from shentu";this.setResizable(false);DBMap m;try {m = DBMan.getInstance().query(sql);showTable(m, title);} catch (IOException | ClassNotFoundException | SQLException ex) {System.out.println("数据库出错---" + ex.getMessage() + "\n");}Thread t = new Thread() {@Overridepublic void run() {while (true) {Date d = new Date();timeText.setText(String.valueOf(d.getHours()) + ":" + String.valueOf(d.getMinutes()) + ":" + String.valueOf(d.getSeconds()));long time = new Date().getTime();time += Long.parseLong(time3Text.getValue().toString()) * 60 * 1000;d = new Date(time);time2Text.setText(String.valueOf(d.getHours()) + ":" + String.valueOf(d.getMinutes()) + ":" + String.valueOf(d.getSeconds()));try {Thread.sleep(1000);} catch (InterruptedException ex) {}}}};t.start();}// 显示数据public void showTable(Map<String, LinkedList<Object>> map, String... title) {// 将数据生成二维数组Set<String> set = map.keySet();Object[] a = map.values().toArray();int size = ((LinkedList<Object>) a[0]).size();Object[][] cc = new Object[size][a.length];for (int i = 0; i < a.length; i++) {LinkedList<Object> l = (LinkedList<Object>) a[i];for (int j = 0; j < size; j++) {cc[j][i] = l.get(j);}}// 将二维数组导入并设置标头Object[] ar = set.toArray();if (title.length == set.size()) {ar = title;}// 实例化,并点击事件jTable1 = new JTable(cc, ar) {@Overridepublic boolean isCellEditable(int row, int column) {if (lastCol == column && lastRow == row) {TextJDialog t = new TextJDialog(f, true, "确认删除请输入Y");if (t.getText(0).equalsIgnoreCase("Y")) {try {BossControl.delete(jTable1.getModel().getValueAt(row, 1).toString());init();JOptionPane.showMessageDialog(null, "删除成功", "提示", JOptionPane.INFORMATION_MESSAGE);} catch (Exception ex) {JOptionPane.showMessageDialog(f, ex.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);}}} else {showItem(row);}lastRow = row;lastCol = column;return false;}};// 将单元格内容居中显示DefaultTableCellRenderer render = new DefaultTableCellRenderer();render.setHorizontalAlignment(SwingConstants.CENTER);for (int i = 0; i < ar.length; i++) {jTable1.getColumn(ar[i]).setCellRenderer(render);}jScrollPane1.setViewportView(jTable1);this.revalidate();}private int lastRow;private int lastCol;String[] title = {"刷新时间", "怪兽名字", "X坐标", "Y坐标", "地图名称"};// Variables declaration - do not modify                     private javax.swing.JButton jButton1;private javax.swing.JLabel jLabel1;private javax.swing.JLabel jLabel2;private javax.swing.JLabel jLabel3;private javax.swing.JLabel jLabel4;private javax.swing.JLabel jLabel5;private javax.swing.JLabel jLabel6;private javax.swing.JScrollPane jScrollPane1;private javax.swing.JTable jTable1;private javax.swing.JTextField mapText;private javax.swing.JTextField nameText;private javax.swing.JTextField time2Text;private javax.swing.JSpinner time3Text;private javax.swing.JTextField timeText;private javax.swing.JSpinner xText;private javax.swing.JSpinner yText;// End of variables declaration
}

工具类

这个是之前写好的,可以自定义进行弹框输入并返回。

TextJDialog .java

/** To change this license header, choose License Headers in Project Properties.* To change this template file, choose Tools | Templates* and open the template in the editor.*/
package gui;import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JTextField;/**** @author lol*/
public class TextJDialog extends JDialog {private JTextField[] text;private int size;private TextJDialog jd;public TextJDialog(Frame owner, boolean modal, String... str) {super(owner, modal);this.setTitle("请输入以下内容");if (str.length == 0) {return;}TextListener lis = new TextListener();jd = this;size = str.length;text = new JTextField[size];this.setLayout(null);int i;int maxLength = -1;for (i = 0; i < size; i++) {JLabel la = new JLabel(str[i]);int l = str[i].length();if (l > maxLength) {maxLength = l;}la.setBounds(10, 5 + 30 * i, 15 * l, 25);text[i] = new JTextField();text[i].setBounds(20 + 15 * l, 5 + 30 * i, 150, 25);text[i].addActionListener(lis);this.add(la);this.add(text[i]);}JButton b = new JButton("确认");b.addActionListener(lis);b.setBounds(170 + maxLength * 15, 5 + 30 * (i - 1), 60, 25);this.addKeyListener(lis);this.add(b);this.setBounds(owner.getX() + owner.getWidth() / 2 - 150, owner.getY() + owner.getHeight() / 2 - (size + 1) * 20, 275 + maxLength * 15, (size + 1) * 40);this.setVisible(true);}public String getText(int id) {if (id >= 0 && id < size) {return text[id].getText();} else {return null;}}public String[] getTexts() {String[] str = new String[size];for (int i = 0; i < size; i++) {str[i] = text[i].getText();}return str;}class TextListener extends KeyAdapter implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {jd.setVisible(false);}@Overridepublic void keyPressed(KeyEvent e) {if (e.getKeyChar() == KeyEvent.VK_ENTER) {jd.setVisible(false);}}}
}

主函数

Main.java

/** To change this license header, choose License Headers in Project Properties.* To change this template file, choose Tools | Templates* and open the template in the editor.*/
package main;/**** @author lol*/
public class Main {/*** @param args the command line arguments*/public static void main(String[] args) {// TODO code application logic hereMainFrame m = new MainFrame();m.setTitle("神途BOSS计时器------by.凌恋");m.setVisible(true);m.setAlwaysOnTop(true); // 置顶}}

运行效果

不定时搞事情篇 No.1 神途BOSS时间记录器相关推荐

  1. 不定时搞事情篇 No.2 神途BOSS时间记录器(续篇)

    计时器 之前做出来的是单机版的,正常来说,如果在一起玩,其实是好几人一起打不同的boss,那么问题来了,我们需要进行同步. 完了经过我一晚上的奋斗,我做出来下面这个东东,介绍一下功能用法. 主界面 只 ...

  2. 神途boss_神途boss刷新

    道士还有一个独具特色的法术,叫做施毒术.在传奇中,当玩家达到14级的时候就可以修炼这种法术了.道士玩家平时可以通过打怪来获取到制作毒粉的材料(材料每次需求量并不是很多,材料种类是三种),每份毒粉制作成 ...

  3. 神途boss_神途BOSS刷新了,女玩家以身冒险前往打骨魔洞

    神途BOSS刷新了,女玩家以身冒险前往打骨魔洞 来源:神途私服 2018-03-14 作者:新开神途发布网站,神途,『神途发布网』-haosf蓝月传奇sf,zhaosf传奇sf 阅读:次 点击提交 在 ...

  4. 神途boss_神途boss大全

    玩家在51<百战天下>的游戏界面中,点击右上方的诛仙封魔图标即可打开活动界面,在诛仙封魔中显示了横行百战大陆的各大妖邪魔兽们,在诛仙封魔中分为世界boss和封魔塔两类,其中封魔塔中存在的乃 ...

  5. 神途boss_神途boss刷新点一举一动都显出了足够的萌属性

    神途boss刷新点 <神途>萌宠看点多,暑期游戏更欢乐.宠物系统是<神途>的一大特色,不仅玩法多样,神途金币合击版有炼化.炼妖.装饰.装备.染色.图鉴和变身等玩法,而且宠物造型 ...

  6. 神途boss_神途boss攻略

    在法宝强化到一定程度之后就能对法宝进行升级.法宝升级可以由玩家自主选择升级类型,攻击型,防御型,辅助型三种不同的法宝形态可供选择.每一种形态都代表着不同的使用方法哦!想要了解更多三界仙魔榜内容,那就快 ...

  7. 在线BOSS计时器(传奇计时器|神途计时器|神途BOSS计时器)

    网址:shentu.1996game.cn 直接进入以后,输入账号和密码即可. 可以创建游戏,创建房间等. 效果图: 输入怪物名,地图名,坐标选填,点击[创建],即可创建BOSS. 点击[死],[捡] ...

  8. 谷歌搞事情:最先被AI淘汰的,居然是做AI的?

    坊间流传着这么一个说法:谷歌想回中国,必须靠AI:而靠AI回中国,必须搞个大事情.于是,上周四的晚上李飞飞发布了一篇博客,然后连着发了三条推特,宣布一个叫AutoML的AI产品启动了. 一夜之间,中国 ...

  9. 51CTO博客移动化意味着什么?IT博主可以搞事情了!

    我红着脸写下了这个标题. 就好比在21世纪的今天,我煞有介事地说:"手机能上网意味着什么?" 好在,很多看起来不可思议的事情,在特定的环境下,就没那么匪夷所思了.如果对山区孩子说这 ...

最新文章

  1. WPF 支持分组互斥的 RadioButton 式单选菜单
  2. isotope == parallax 例子
  3. java fx listview,JavaFX 8自定义ListView单元它是邪恶的
  4. 再见2019,拥抱2020
  5. CarMaker与NS3联合仿真平台--安装
  6. python可以下载百度文库的文档_Python 文档
  7. 南方cass字体样式设置_CASS字体设置之方正字库中英文对照表
  8. 获取中国气象台卫星云图
  9. python跳出双循环break图例
  10. 简单粗暴搞定网易云音乐限制!找回失去的灰色快乐
  11. 微信小程序跳转微信内置浏览器
  12. inno setup 修改将程序安装路径写入注册表
  13. 一个屌丝程序猿的人生(三十八)
  14. 创建RAID5磁盘阵列和RAID10磁盘阵列
  15. 悠然一指,点“识”成金
  16. NSS 错误码详细信息
  17. 怎么用Python计算地球上任意两个用经纬度表示的点的弧面距离?
  18. 老程序员来说算法重要不重要
  19. 无线调试服务器,从无线局域网控制器(WLC)的收集的调试
  20. html中国家选择,jquery国家选择插件flagstrap

热门文章

  1. php抓取网页所有文字,php抓取网页内容的方法
  2. govendor包管理工具
  3. 2022第二届低代码极客挑战赛邀你来战!
  4. 手把手教你实现基于RT-Thread的百度语音识别(一)
  5. Java二十八:Java可变参数
  6. (1)Shell 编程学习 Shell是什么?Shell的浅显原理 为什么要学Shell 及其第一个Shell脚本 CTF角度学习Shell
  7. 车辆提示请防止车辆滑动 即车辆驻车异常
  8. 南开大学 计算机学院 副院长 李,院长刘立松到计算机科学系调研座谈
  9. Java 泛型的不变性 (invariance)、协变性 (covariance)、逆变性 (contravariance)
  10. 达观数据王文广:如何玩转自然语言理解和深度学习实践?