⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 registerfunction.java

📁 一套MMORPG手机网络游戏的服务端
💻 JAVA
字号:
package com.swing.game.crystal.function;

import java.util.List;
import java.util.ArrayList;
import java.io.File;
import org.dom4j.Element;
import org.dom4j.Document;
import org.dom4j.io.SAXReader;
import java.net.*;
import org.dom4j.*;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import java.io.FileWriter;
import java.io.IOException;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.Logger;

import com.swing.game.crystal.CrystalController;
import com.swing.game.crystal.utils.Person;
import com.swing.server.common.GameFunction;

import java.util.Iterator;

public class RegisterFunction
    extends GameFunction {

  public static final String DEFAULT_MAP = "0";
  public static final String DEFAULT_MAPXPOSITION = "2";
  public static final String DEFAULT_MAPYPOSITION = "2";

  public static Logger logger = Logger.getLogger(RegisterFunction.class);
  static {
    PropertyConfigurator.configure("./cfg/Log4j.properties");
  }

  public List handleRequest(String player, String message) {
    String[] command = message.split(CrystalController.SPLITTER_2);
    List re = null;
    try {
      SAXReader reader = new SAXReader();
      Document document = null;
      document = reader.read(new File("./xml/User.xml"));
      Element root = document.getRootElement();
      Element e = (Element) root.selectSingleNode("./user[@id=\"" + player + "\"]");
      if (e != null) {
          re = new ArrayList();
          re.add("R");
      }
      else {
        e = root.addElement("user");
        e.addAttribute("id", player);
        e.addElement("password").setText(command[1]);
        e.addElement("mapCode").setText(DEFAULT_MAP);
        e.addElement("mapXPosition").setText(DEFAULT_MAPXPOSITION);
        e.addElement("mapYPosition").setText(DEFAULT_MAPYPOSITION);
        e.addElement("kind").setText(command[2]);
        e.addElement("level").setText("1");

        // 主角种类在1-3之间!!!
        Person p = (Person) CrystalController.PersonMapping.get(command[2]);
        e.addElement("hp").setText(String.valueOf(p.hp));
        e.addElement("power").setText(String.valueOf(p.power));
        e.addElement("sp").setText("0");
        e.addElement("attack").setText(String.valueOf(p.attack));
        e.addElement("defense").setText(String.valueOf(p.defense));
        e.addElement("resurrection").setText(String.valueOf(p.resurrection));
        e.addElement("agility").setText(String.valueOf(p.agility));

        e.addElement("money").setText("100");
        e.addElement("exp").setText("0");
        e.addElement("boss").setText("0");
        e.addElement("carreer").setText("0");
        e.addElement("capacity").setText(String.valueOf(p.capacity));
        e.addElement("curSuit").setText(p.suit);
        e.addElement("curShoe").setText(p.shoe);
        Element weapon = e.addElement("weapon");

        for (Iterator i = p.weapon.iterator(); i.hasNext(); )
          weapon.addElement("Element").addAttribute("id", (String) i.next()).
              addAttribute("number", "1");
        weapon.addElement("Element").addAttribute("id", p.shoe).addAttribute("number", "1");
        weapon.addElement("Element").addAttribute("id", p.suit).addAttribute("number", "1");

        e.addElement("friends");
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding("GB2312");
        XMLWriter writer = new XMLWriter(new FileWriter("./xml/User.xml"),
                                         format);
        writer.write(root.getDocument());
        writer.close();
        re = ( (GameFunction) gc.function.get("0")).handleRequest(player, "0" + CrystalController.SPLITTER_2 
            + command[1] + CrystalController.SPLITTER_2 + CrystalController.VERSION);
      }
    }
    catch (MalformedURLException ex) {
      re = new ArrayList();
      re.add("W");
      logger.error(ex);
    }
    catch (DocumentException ex) {
        re = new ArrayList();
        re.add("W");
      logger.error(ex);
    }
    catch (IOException ex) {
        re = new ArrayList();
        re.add("W");
      logger.error(ex);
    }
    return re;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -