您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1280|回复: 2

发一个正宗银行。 【自己修改的】

[复制链接]

55

回帖

3

主题

51

积分

新手上路

威望
0 点
冒险币
211 个
贡献值
0 点
好评度
0 点
发表于 2013-3-17 01:31:51 | 显示全部楼层 |阅读模式
MYSQL:
  1. /*
  2. MySQL Data Transfer
  3. Source Host: localhost
  4. Source Database: odinms
  5. Target Host: localhost
  6. Target Database: odinms
  7. Date: 2008-11-16 14:36:15
  8. */
  9. SET FOREIGN_KEY_CHECKS=0;
  10. -- ----------------------------
  11. -- Table structure for bank
  12. -- ----------------------------
  13. DROP TABLE IF EXISTS `bank`;
  14. CREATE TABLE `bank` (
  15.   `id` int(11) NOT NULL auto_increment,
  16.   `charid` int(11) NOT NULL UNIQUE,
  17.   `money` int(11) NOT NULL,
  18.   PRIMARY KEY  (`id`)
  19. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  20. -- ----------------------------
  21. -- Records
  22. -- ----------------------------
复制代码
JAVA:
  1. 找到net.sf.odinms.scripting.npc.NPCConversationManager
  2. 找到package net.sf.odinms.scripting.npc;
  3. 添加import java.sql.*;import
  4. net.sf.odinms.database.DatabaseConnection;
  5. 在最后一个大括号前添加
  6. 引用
  7. public int getMoney()
  8.         {
  9.             int money=0;
  10.             try {
  11.                 int cid = getPlayer().getId();
  12.                 Connection con = DatabaseConnection.getConnection();
  13.                 PreparedStatement limitCheck = con.prepareStatement("SELECT * FROM Bank WHERE charid="+cid+"");
  14.                 ResultSet rs = limitCheck.executeQuery();
  15.                 if(rs.next())
  16.                 {
  17.                     money=rs.getInt("money");
  18.                 }
  19.                 limitCheck.close();
  20.                 rs.close();
  21.                 } catch (SQLException ex) {
  22.                 }
  23.                 return money;
  24.         }
  25.         
  26.         public int addMoney(int money,int type)
  27.         {   
  28.             try {
  29.                 int cid = getPlayer().getId();
  30.               
  31.                 Connection con = DatabaseConnection.getConnection();
  32.                 PreparedStatement ps = con.prepareStatement("select * from bank where charid=?");
  33.                 ps.setInt(1, cid);
  34.                 ResultSet rs=ps.executeQuery();
  35.                 if(rs.next())
  36.                 {
  37.                     if(type==1)
  38.                     {
  39.                         if(money>rs.getInt("money"))
  40.                         {
  41.                             return -1;
  42.                         }
  43.                     }
  44.                     ps = con.prepareStatement("UPDATE Bank SET money =money+ " + money + " WHERE charid = " + cid + "");
  45.                     return ps.executeUpdate();                    
  46.                 }
  47.                
  48.             } catch (SQLException ex) {               
  49.             }
  50.               return 0;
  51.         }
  52.         public int addBank()
  53.         {
  54.             int r=0;
  55.         try {
  56.             Connection con = DatabaseConnection.getConnection();
  57.             PreparedStatement ps = con.prepareStatement("insert into bank (charid,money) values (?,0)");
  58.             ps.setInt(1, getPlayer().getId());            
  59.             r=ps.executeUpdate();
  60.             ps.close();
  61.             
  62.         } catch (SQLException ex) {
  63.           r=0;
  64.         }
  65.             
  66.             return r;
  67.         }
复制代码
以上的一般端里都有   但是这个NPC有一个缺点  就是储存的金钱也只能储存21E。  所以我自己就修改了一下下    大家当做学习吧

原来的NPC是这样的:
  1. var status = 0;
  2. var t=new Array("存钱","取钱","查看","开户");
  3. var money=new Array("100W","300W","500W","1000W");
  4. var money1=new Array("1000000","3000000","5000000","10000000");
  5. var x=0;
  6. function start() {
  7. status = -1;
  8. action(1, 0, 0);
  9. }
  10. function action(mode, type, selection) {
  11.     if (mode == -1) {
  12.       cm.dispose();
  13.     } else {
  14.           if (mode == 0 && status == 0) {
  15.           cm.dispose();
  16.           return;
  17.       }
  18.       if (mode == 1)
  19.       status++;
  20.       else
  21.       status--;
  22.       if (status == 0)
  23.       {
  24.         cm.sendNext("欢迎使用 #b甜甜的冒险岛银行系统#k 我的朋友!");
  25.       }
  26.       else if (status == 1) {
  27.         var a = "请选择你需要的功能.#b";
  28.                     for (var i=0; i < t.length; i++) {
  29.                     a += "\r\n#L" + i + "#" + t[ i ]+"";
  30.                     }
  31.                   cm.sendSimple(a);
  32.         }
  33.       else if(status == 2)
  34.       {
  35.             x=selection;
  36.           if(x==2)
  37.           {
  38.             cm.sendOk("您的存款有"+cm.getMoney()+" ");
  39.             cm.dispose();
  40.           }
  41.           else if (x==3)
  42.             {
  43.                 if(cm.addBank()>0)
  44.                 {
  45.                     cm.sendOk("恭喜您,开户成功!");
  46.                     }
  47.                     else
  48.                     {
  49.                         cm.sendOk("很抱歉,开户失败!可能您已经开户过了哦!");
  50.                     }
  51.                     cm.dispose();
  52.             }
  53.           else
  54.           {
  55.          
  56.           var b = " 请选择数量.#b";
  57.                         for (var i=0; i < money.length; i++) {
  58.                         b += "\r\n#L" + i + "#" + money[ i ]+"";
  59.                         }
  60.                         cm.sendSimple(b);
  61.           }
  62.       }
  63.       else if (status == 3) {
  64.           var choose=money1[selection];
  65.           if(x==0)//存
  66.             {
  67.             if(cm.getMeso()<choose)
  68.             {
  69.                 cm.sendOk("Oh,Sorry,您的钱不够!");   
  70.             }
  71.             else if(cm.addMoney(choose,0)>0)
  72.                 {
  73.                 cm.gainMeso(-choose);
  74.                 cm.sendOk("好的,已经存入!");
  75.                 }
  76.                 else
  77.                 {
  78.                 cm.sendOk("Error:请反馈给管理员!");

  79.                 }
  80.                 cm.dispose();
  81.             }
  82.             else if(x==1)//取
  83.             {
  84.             if(cm.getMoney()<choose)
  85.             {
  86.                 cm.sendOk("Oh,Sorry,您存款没有那么多呢!");   
  87.             }
  88.                 else if(cm.addMoney(-choose,1)>0)
  89.                 {
  90.                 cm.gainMeso(choose);
  91.                 cm.sendOk("好的,请收好您的钱!");
  92.                 }
  93.                 else
  94.                 {
  95.                 cm.sendOk("Error:请反馈给管理员!");
  96.                 }
  97.                 cm.dispose();
  98.               }
  99.             
  100.       
  101.       }
  102.       else
  103.       {
  104.       cm.dispose();
  105.       }
  106.     }
  107. }
复制代码
我修改了的是这样的:
  1. var status = 0;
  2. var t=new Array("存钱","取钱","查看","开户");
  3. var money=new Array("一百万","一千万","一亿","十亿");
  4. var money1=new Array("1","10","100","1000");
  5. var x=0;
  6. function start() {
  7. status = -1;
  8. action(1, 0, 0);
  9. }
  10. function action(mode, type, selection) {
  11.     if (mode == -1) {
  12.       cm.dispose();
  13.     } else {
  14.           if (mode == 0 && status == 0) {
  15.           cm.dispose();
  16.           return;
  17.       }
  18.       if (mode == 1)
  19.       status++;
  20.       else
  21.       status--;
  22.       if (status == 0)
  23.       {
  24.         cm.sendNext("#e欢迎使用#b正宗冒险岛银行系统#k 我的朋友!");
  25.       }
  26.       else if (status == 1) {
  27.         var a = "请选择你需要的功能.#b";
  28.                     for (var i=0; i < t.length; i++) {
  29.                     a += "\r\n#L" + i + "#" + t[ i ]+"";
  30.                     }
  31.                   cm.sendSimple(a);
  32.         }
  33.       else if(status == 2)
  34.       {
  35.             x=selection;
  36.           if(x==2)
  37.           {
  38.             cm.sendOk("您的存款有"+cm.getMoney()*1000000+" ");
  39.             cm.dispose();
  40.           }
  41.           else if (x==3)
  42.             {
  43.                 if(cm.addBank()>0)
  44.                 {
  45.                     cm.sendOk("恭喜您,开户成功!");
  46.                     }
  47.                     else
  48.                     {
  49.                         cm.sendOk("很抱歉,开户失败!可能您已经开户过了哦!");
  50.                     }
  51.                     cm.dispose();
  52.             }
  53.           else
  54.           {
  55.          
  56.           var b = " 请选择数量.#b";
  57.                         for (var i=0; i < money.length; i++) {
  58.                         b += "\r\n#L" + i + "#" + money[ i ]+"";
  59.                         }
  60.                         cm.sendSimple(b);
  61.           }
  62.       }
  63.       else if (status == 3) {
  64.           var choose=money1[selection];
  65.           if(x==0)//存
  66.             {
  67.             if(cm.getMeso()<choose*1000000)
  68.             {
  69.                 cm.sendOk("Oh,Sorry,您的钱不够!");   
  70.             }
  71.             else if(cm.addMoney(choose,0)>0)
  72.                 {
  73.                 cm.gainMeso(-choose*1000000);
  74.                 cm.sendOk("好的,已经存入!");
  75.                 }
  76.                 else
  77.                 {
  78.                 cm.sendOk("Error:请反馈给管理员!");

  79.                 }
  80.                 cm.dispose();
  81.             }
  82.             else if(x==1)//取
  83.             {
  84.             if(cm.getMoney()<<span style="line-height: 1.5;">choose</span><span style="line-height: 1.5;">)</span>
复制代码
可以自己去琢磨琢磨
经典冒险岛

71

回帖

1

主题

59

积分

新手上路

威望
0 点
冒险币
193 个
贡献值
0 点
好评度
0 点

新人进步奖

发表于 2013-3-17 07:22:21 | 显示全部楼层
这么帅,还有开户
回复

使用道具 举报

55

回帖

3

主题

51

积分

新手上路

威望
0 点
冒险币
211 个
贡献值
0 点
好评度
0 点
 楼主| 发表于 2013-3-17 08:03:39 | 显示全部楼层
不完美的完美 发表于 2013-3-17 07:22
这么帅,还有开户

那个只是一个形式啦      主要的是后面的那个修改的地方
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

    申请友链|Archiver|手机版|

GMT+8, 2024-5-17 12:17 , Processed in 0.190231 second(s), 20 queries .

© 2001-2011 Powered by Discuz! X3.5. Theme By Yeei!

返回顶部