502 lines
26 KiB
Java
502 lines
26 KiB
Java
package handling.channel.handler;
|
|
|
|
import java.util.List;
|
|
|
|
import client.MapleCharacter;
|
|
import client.MapleBeans;
|
|
import tools.FileoutputUtil;
|
|
import constants.GameConstants;
|
|
import server.Randomizer;
|
|
import tools.MaplePacketCreator;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import constants.BeansConstants;
|
|
import client.MapleClient;
|
|
import tools.data.LittleEndianAccessor;
|
|
|
|
public class BeanGame {
|
|
public static int 进洞次数;
|
|
public static int 第一排;
|
|
public static int 第三排;
|
|
public static int 第二排;
|
|
public static int 启动打怪效果;
|
|
public static int 中奖率;
|
|
public static int 加速旋转;
|
|
public static boolean 打中女皇出现特效A;
|
|
public static boolean 打中女皇出现特效B;
|
|
public static int 蓝;
|
|
public static int 绿;
|
|
public static int 红;
|
|
public static int 黄金狗设置局数;
|
|
|
|
public static final void BeansGameAction(final LittleEndianAccessor slea, final MapleClient c) {
|
|
final BeansConstants Beans = new BeansConstants();
|
|
final int 海洋帽子机率 = Beans.get海洋帽子机率();
|
|
final int 力度搞假 = Beans.get力度搞假();
|
|
final int 豆豆奖励范围 = Beans.get豆豆奖励范围();
|
|
final String[] 黄金狗机率 = Beans.get黄金狗机率();
|
|
final String[] 大白怪 = Beans.get大白怪();
|
|
final String[] 小白怪 = Beans.get小白怪();
|
|
final String[] 紫色怪 = Beans.get紫色怪();
|
|
final String[] 粉色怪 = Beans.get粉色怪();
|
|
final String[] 飞侠 = Beans.get飞俠();
|
|
final String[] 海盗 = Beans.get海盜();
|
|
final String[] 魔法师 = Beans.get魔法师();
|
|
final String[] 战士 = Beans.get战士();
|
|
final String[] 弓箭手 = Beans.get弓箭手();
|
|
final String[] 女皇 = Beans.get女皇();
|
|
final String[] 白怪奖励 = Beans.get白怪奖励();
|
|
final String[] 色怪奖励 = Beans.get色怪奖励();
|
|
final String[] 五职业奖励 = Beans.get五职业奖励();
|
|
final String[] 女皇奖励 = Beans.get女皇奖励();
|
|
final MapleCharacter chr = c.getPlayer();
|
|
final List<MapleBeans> beansInfo = (List<MapleBeans>) new ArrayList();
|
|
final int type = slea.readByte();
|
|
int 力度 = 0;
|
|
int 豆豆序号 = 0;
|
|
if (chr.getBeans() <= 0) {
|
|
c.getPlayer().dropMessage(1, "你沒有小钢珠,无法使用。");
|
|
c.sendPacket(MaplePacketCreator.enableActions());
|
|
return;
|
|
}
|
|
switch (type) {
|
|
case 0: {
|
|
slea.readShort();
|
|
力度 = Randomizer.rand(1000, 5000);
|
|
chr.setBeansRange(力度);
|
|
c.getSession().write(MaplePacketCreator.enableActions());
|
|
break;
|
|
}
|
|
case 1: {
|
|
chr.setBeansRange(力度);
|
|
c.getSession().write(MaplePacketCreator.enableActions());
|
|
break;
|
|
}
|
|
case 2: {
|
|
if (get进洞次数() > 1) {
|
|
set进洞次数(0);
|
|
break;
|
|
}
|
|
set进洞次数(0);
|
|
break;
|
|
}
|
|
case 3: {
|
|
gain进洞次数(1);
|
|
if (get进洞次数() > 7) {
|
|
set进洞次数(7);
|
|
}
|
|
c.getSession().write(MaplePacketCreator.BeansJDCS(get进洞次数(), BeanGame.加速旋转, BeanGame.蓝, BeanGame.绿, BeanGame.红));
|
|
break;
|
|
}
|
|
case 4: {
|
|
if (get进洞次数() == 0) {
|
|
c.sendPacket(MaplePacketCreator.enableActions());
|
|
return;
|
|
}
|
|
gain进洞次数(-1);
|
|
int 概率 = 0;
|
|
if (BeanGame.黄金狗设置局数 > 0) {
|
|
概率 = 100;
|
|
}
|
|
if (Randomizer.nextInt(Integer.parseInt(大白怪[0])) > Integer.parseInt(大白怪[1]) && 概率 != 100) {
|
|
BeanGame.第一排 = 0;
|
|
BeanGame.第三排 = 0;
|
|
if (Randomizer.nextInt(Integer.parseInt(大白怪[2])) > Integer.parseInt(大白怪[3])) {
|
|
BeanGame.第二排 = 0;
|
|
BeanGame.中奖率 = 100;
|
|
} else {
|
|
BeanGame.中奖率 = 0;
|
|
}
|
|
BeanGame.启动打怪效果 = 1;
|
|
BeanGame.打中女皇出现特效A = false;
|
|
BeanGame.打中女皇出现特效B = false;
|
|
} else if (Randomizer.nextInt(Integer.parseInt(紫色怪[0])) > Integer.parseInt(紫色怪[1]) && 概率 != 100) {
|
|
BeanGame.第一排 = 9;
|
|
BeanGame.第三排 = 7;
|
|
if (Randomizer.nextInt(Integer.parseInt(紫色怪[2])) > Integer.parseInt(紫色怪[3])) {
|
|
BeanGame.第二排 = 1;
|
|
BeanGame.中奖率 = 100;
|
|
} else {
|
|
BeanGame.中奖率 = 0;
|
|
}
|
|
BeanGame.启动打怪效果 = 1;
|
|
BeanGame.打中女皇出现特效A = false;
|
|
BeanGame.打中女皇出现特效B = false;
|
|
} else if (Randomizer.nextInt(Integer.parseInt(粉色怪[0])) > Integer.parseInt(粉色怪[1]) && 概率 != 100) {
|
|
BeanGame.第一排 = 1;
|
|
BeanGame.第三排 = 2;
|
|
if (Randomizer.nextInt(Integer.parseInt(粉色怪[2])) > Integer.parseInt(粉色怪[3])) {
|
|
BeanGame.第二排 = 3;
|
|
BeanGame.中奖率 = 100;
|
|
} else {
|
|
BeanGame.中奖率 = 0;
|
|
}
|
|
BeanGame.启动打怪效果 = 1;
|
|
BeanGame.打中女皇出现特效A = false;
|
|
BeanGame.打中女皇出现特效B = false;
|
|
} else if (Randomizer.nextInt(Integer.parseInt(小白怪[0])) > Integer.parseInt(小白怪[1]) && 概率 != 100) {
|
|
BeanGame.第一排 = 5;
|
|
BeanGame.第三排 = 1;
|
|
if (Randomizer.nextInt(Integer.parseInt(小白怪[2])) > Integer.parseInt(小白怪[3])) {
|
|
BeanGame.第二排 = 5;
|
|
BeanGame.中奖率 = 100;
|
|
} else {
|
|
BeanGame.中奖率 = 0;
|
|
}
|
|
BeanGame.启动打怪效果 = 1;
|
|
BeanGame.打中女皇出现特效A = false;
|
|
BeanGame.打中女皇出现特效B = false;
|
|
} else if (Randomizer.nextInt(Integer.parseInt(飞侠[0])) > Integer.parseInt(飞侠[1]) && 概率 != 100) {
|
|
BeanGame.第一排 = 4;
|
|
BeanGame.第三排 = 9;
|
|
if (Randomizer.nextInt(Integer.parseInt(飞侠[2])) > Integer.parseInt(飞侠[3])) {
|
|
BeanGame.第二排 = 2;
|
|
BeanGame.中奖率 = 100;
|
|
} else {
|
|
BeanGame.中奖率 = 0;
|
|
}
|
|
BeanGame.启动打怪效果 = 1;
|
|
BeanGame.打中女皇出现特效A = false;
|
|
BeanGame.打中女皇出现特效B = false;
|
|
} else if (Randomizer.nextInt(Integer.parseInt(海盗[0])) > Integer.parseInt(海盗[1]) && 概率 != 100) {
|
|
BeanGame.第一排 = 7;
|
|
BeanGame.第三排 = 5;
|
|
if (Randomizer.nextInt(Integer.parseInt(海盗[2])) > Integer.parseInt(海盗[3])) {
|
|
BeanGame.第二排 = 4;
|
|
BeanGame.中奖率 = 100;
|
|
} else {
|
|
BeanGame.中奖率 = 0;
|
|
}
|
|
BeanGame.启动打怪效果 = 1;
|
|
BeanGame.打中女皇出现特效A = false;
|
|
BeanGame.打中女皇出现特效B = false;
|
|
} else if (Randomizer.nextInt(Integer.parseInt(魔法师[0])) > Integer.parseInt(魔法师[1]) && 概率 != 100) {
|
|
BeanGame.第一排 = 2;
|
|
BeanGame.第三排 = 4;
|
|
if (Randomizer.nextInt(Integer.parseInt(魔法师[2])) > Integer.parseInt(魔法师[3])) {
|
|
BeanGame.第二排 = 6;
|
|
BeanGame.中奖率 = 100;
|
|
} else {
|
|
BeanGame.中奖率 = 0;
|
|
}
|
|
BeanGame.启动打怪效果 = 1;
|
|
BeanGame.打中女皇出现特效A = false;
|
|
BeanGame.打中女皇出现特效B = false;
|
|
} else if (Randomizer.nextInt(Integer.parseInt(战士[0])) > Integer.parseInt(战士[1]) && 概率 != 100) {
|
|
BeanGame.第一排 = 8;
|
|
BeanGame.第三排 = 8;
|
|
if (Randomizer.nextInt(Integer.parseInt(战士[2])) > Integer.parseInt(战士[3])) {
|
|
BeanGame.第二排 = 7;
|
|
BeanGame.中奖率 = 100;
|
|
} else {
|
|
BeanGame.中奖率 = 0;
|
|
}
|
|
BeanGame.启动打怪效果 = 1;
|
|
BeanGame.打中女皇出现特效A = false;
|
|
BeanGame.打中女皇出现特效B = false;
|
|
} else if (Randomizer.nextInt(Integer.parseInt(弓箭手[0])) > Integer.parseInt(弓箭手[1]) && 概率 != 100) {
|
|
BeanGame.第一排 = 6;
|
|
BeanGame.第三排 = 3;
|
|
if (Randomizer.nextInt(Integer.parseInt(弓箭手[2])) > Integer.parseInt(弓箭手[3])) {
|
|
BeanGame.第二排 = 8;
|
|
BeanGame.中奖率 = 100;
|
|
} else {
|
|
BeanGame.中奖率 = 0;
|
|
}
|
|
BeanGame.启动打怪效果 = 1;
|
|
BeanGame.打中女皇出现特效A = false;
|
|
BeanGame.打中女皇出现特效B = false;
|
|
} else if (Randomizer.nextInt(Integer.parseInt(女皇[0])) > Integer.parseInt(女皇[1]) || 概率 == 100) {
|
|
BeanGame.第一排 = 3;
|
|
BeanGame.第三排 = 6;
|
|
if (BeanGame.黄金狗设置局数 > 0) {
|
|
BeanGame.第二排 = 9;
|
|
BeanGame.中奖率 = 100;
|
|
BeanGame.黄金狗设置局数 = 0;
|
|
} else if (Randomizer.nextInt(Integer.parseInt(女皇[2])) > Integer.parseInt(女皇[3])) {
|
|
BeanGame.第二排 = 9;
|
|
BeanGame.中奖率 = 100;
|
|
} else {
|
|
BeanGame.中奖率 = 0;
|
|
}
|
|
BeanGame.启动打怪效果 = 1;
|
|
BeanGame.打中女皇出现特效A = false;
|
|
BeanGame.打中女皇出现特效B = false;
|
|
} else {
|
|
switch (BeanGame.第一排 = Randomizer.nextInt(10)) {
|
|
case 0: {
|
|
BeanGame.第三排 = Randomizer.nextInt(9) + 1;
|
|
break;
|
|
}
|
|
case 1: {
|
|
BeanGame.第三排 = Randomizer.nextInt(7) + 3;
|
|
break;
|
|
}
|
|
case 2: {
|
|
BeanGame.第三排 = Randomizer.nextInt(5) + 5;
|
|
break;
|
|
}
|
|
case 3: {
|
|
BeanGame.第三排 = Randomizer.nextInt(3) + 7;
|
|
break;
|
|
}
|
|
case 4: {
|
|
BeanGame.第三排 = Randomizer.nextInt(9);
|
|
break;
|
|
}
|
|
case 5: {
|
|
BeanGame.第三排 = Randomizer.nextInt(8) + 2;
|
|
break;
|
|
}
|
|
case 6: {
|
|
BeanGame.第三排 = Randomizer.nextInt(6) + 4;
|
|
break;
|
|
}
|
|
case 7: {
|
|
BeanGame.第三排 = Randomizer.nextInt(4) + 6;
|
|
break;
|
|
}
|
|
case 8: {
|
|
BeanGame.第三排 = Randomizer.nextInt(8);
|
|
break;
|
|
}
|
|
case 9: {
|
|
BeanGame.第三排 = Randomizer.nextInt(7);
|
|
break;
|
|
}
|
|
}
|
|
BeanGame.第二排 = Randomizer.nextInt(10);
|
|
BeanGame.启动打怪效果 = 0;
|
|
BeanGame.中奖率 = 0;
|
|
BeanGame.加速旋转 = 0;
|
|
BeanGame.打中女皇出现特效A = false;
|
|
BeanGame.打中女皇出现特效B = false;
|
|
}
|
|
c.getSession().write(MaplePacketCreator.BeansJDXZ(get进洞次数(), BeanGame.第一排, BeanGame.第三排, BeanGame.第二排, BeanGame.启动打怪效果, BeanGame.中奖率, BeanGame.加速旋转, BeanGame.打中女皇出现特效A, BeanGame.打中女皇出现特效B));
|
|
c.sendPacket(MaplePacketCreator.enableActions());
|
|
if (BeanGame.第二排 == 9) {
|
|
break;
|
|
}
|
|
if (Randomizer.nextInt(Integer.parseInt(黄金狗机率[0])) == Integer.parseInt(黄金狗机率[1]) && BeanGame.黄金狗设置局数 == 0) {
|
|
BeanGame.黄金狗设置局数 = 1;
|
|
c.getSession().write(MaplePacketCreator.BeansHJG((byte) 1));
|
|
break;
|
|
}
|
|
BeanGame.黄金狗设置局数 = 0;
|
|
c.getSession().write(MaplePacketCreator.BeansHJG((byte) 0));
|
|
break;
|
|
}
|
|
case 5: {
|
|
if ((BeanGame.第一排 == 0 && BeanGame.第三排 == 0 && BeanGame.第二排 == 0) || (BeanGame.第一排 == 9 && BeanGame.第三排 == 7 && BeanGame.第二排 == 1) || (BeanGame.第一排 == 4 && BeanGame.第三排 == 9 && BeanGame.第二排 == 2) || (BeanGame.第一排 == 1 && BeanGame.第三排 == 2 && BeanGame.第二排 == 3) || (BeanGame.第一排 == 7 && BeanGame.第三排 == 5 && BeanGame.第二排 == 4) || (BeanGame.第一排 == 5 && BeanGame.第三排 == 1 && BeanGame.第二排 == 5) || (BeanGame.第一排 == 2 && BeanGame.第三排 == 4 && BeanGame.第二排 == 6) || (BeanGame.第一排 == 8 && BeanGame.第三排 == 8 && BeanGame.第二排 == 7) || (BeanGame.第一排 == 6 && BeanGame.第三排 == 3 && BeanGame.第二排 == 8) || (BeanGame.第一排 == 3 && BeanGame.第三排 == 6 && BeanGame.第二排 == 9)) {
|
|
final int itemId = 0;
|
|
final int experi = Randomizer.nextInt(Math.abs(GameConstants.getExpNeededForLevel((int) c.getPlayer().getLevel()) / 800) + 1);
|
|
final int beilu = (c.getPlayer().getLevel() <= 50) ? 1 : ((c.getPlayer().getLevel() > 50 && c.getPlayer().getLevel() <= 100) ? 2 : ((c.getPlayer().getLevel() > 100 && c.getPlayer().getLevel() <= 150) ? 4 : ((c.getPlayer().getLevel() > 150 && c.getPlayer().getLevel() <= 200) ? 8 : 1)));
|
|
final int experi2 = (int) Math.ceil((double) (experi / beilu));
|
|
final int x = Randomizer.nextInt(100) + 1;
|
|
final int count = 1;
|
|
switch (BeanGame.第二排) {
|
|
case 0:
|
|
case 5: {
|
|
if (Randomizer.nextInt(Integer.parseInt(白怪奖励[0])) > Randomizer.nextInt(Integer.parseInt(白怪奖励[1]))) {
|
|
c.getPlayer().gainExp(experi2, false, false, false);
|
|
c.getPlayer().dropMessage(5, "在小钢珠中获得:" + experi2 + "经验值!");
|
|
} else if (Randomizer.nextInt(Integer.parseInt(白怪奖励[2])) > Randomizer.nextInt(Integer.parseInt(白怪奖励[3]))) {
|
|
c.getPlayer().gainExp(experi2, false, false, false);
|
|
c.getPlayer().dropMessage(5, "在小钢珠中获得:" + experi2 + "经验值!");
|
|
}
|
|
c.sendPacket(MaplePacketCreator.enableActions());
|
|
break;
|
|
}
|
|
case 1:
|
|
case 3: {
|
|
if (Randomizer.nextInt(Integer.parseInt(色怪奖励[0])) > Randomizer.nextInt(Integer.parseInt(色怪奖励[1]))) {
|
|
c.getPlayer().gainExp(experi2, false, false, false);
|
|
c.getPlayer().dropMessage(5, "在小钢珠中获得:" + experi2 + "经验值!");
|
|
} else if (Randomizer.nextInt(Integer.parseInt(色怪奖励[4])) > Randomizer.nextInt(Integer.parseInt(色怪奖励[5]))) {
|
|
c.getPlayer().gainExp(experi2, false, false, false);
|
|
c.getPlayer().dropMessage(5, "在小钢珠中获得:" + experi2 + "经验值!");
|
|
} else if (Randomizer.nextInt(Integer.parseInt(色怪奖励[2])) > Randomizer.nextInt(Integer.parseInt(色怪奖励[3]))) {
|
|
c.getPlayer().gainExp(experi2, false, false, false);
|
|
c.getPlayer().dropMessage(5, "在小钢珠中获得:" + experi2 + "经验值!");
|
|
}
|
|
c.sendPacket(MaplePacketCreator.enableActions());
|
|
break;
|
|
}
|
|
case 2:
|
|
case 4:
|
|
case 6:
|
|
case 7:
|
|
case 8: {
|
|
if (Randomizer.nextInt(Integer.parseInt(五职业奖励[0])) > Randomizer.nextInt(Integer.parseInt(五职业奖励[1]))) {
|
|
c.getPlayer().gainExp(experi2, false, false, false);
|
|
c.getPlayer().dropMessage(5, "在小钢珠中获得:" + experi2 + "经验值!");
|
|
} else if (Randomizer.nextInt(Integer.parseInt(五职业奖励[4])) > Randomizer.nextInt(Integer.parseInt(五职业奖励[5]))) {
|
|
c.getPlayer().gainExp(experi2, false, false, false);
|
|
c.getPlayer().dropMessage(5, "在小钢珠中获得:" + experi2 + "经验值!");
|
|
} else if (Randomizer.nextInt(Integer.parseInt(五职业奖励[6])) > Randomizer.nextInt(Integer.parseInt(五职业奖励[7]))) {
|
|
c.getPlayer().gainExp(experi2, false, false, false);
|
|
c.getPlayer().dropMessage(5, "在小钢珠中获得:" + experi2 + "经验值!");
|
|
} else if (Randomizer.nextInt(Integer.parseInt(五职业奖励[2])) > Randomizer.nextInt(Integer.parseInt(五职业奖励[3]))) {
|
|
c.getPlayer().gainExp(experi2, false, false, false);
|
|
c.getPlayer().dropMessage(5, "在小钢珠中获得:" + experi2 + "经验值!");
|
|
}
|
|
c.sendPacket(MaplePacketCreator.enableActions());
|
|
break;
|
|
}
|
|
case 9: {
|
|
if (Randomizer.nextInt(Integer.parseInt(女皇奖励[4])) > Randomizer.nextInt(Integer.parseInt(女皇奖励[5]))) {
|
|
c.getPlayer().gainExp(experi2, false, false, false);
|
|
c.getPlayer().dropMessage(5, "在小钢珠中获得:" + experi2 + "经验值!");
|
|
} else if (x == 海洋帽子机率) {
|
|
c.getPlayer().gainExp(experi2, false, false, false);
|
|
c.getPlayer().dropMessage(5, "在小钢珠中获得:" + experi2 + "经验值!");
|
|
} else if (Randomizer.nextInt(Integer.parseInt(女皇奖励[6])) > Randomizer.nextInt(Integer.parseInt(女皇奖励[7]))) {
|
|
c.getPlayer().gainExp(experi2, false, false, false);
|
|
c.getPlayer().dropMessage(5, "在小钢珠中获得:" + experi2 + "经验值!");
|
|
} else if (Randomizer.nextInt(Integer.parseInt(女皇奖励[2])) > Randomizer.nextInt(Integer.parseInt(女皇奖励[3]))) {
|
|
c.getPlayer().gainExp(experi2, false, false, false);
|
|
c.getPlayer().dropMessage(5, "在小钢珠中获得:" + experi2 + "经验值!");
|
|
}
|
|
c.sendPacket(MaplePacketCreator.enableActions());
|
|
break;
|
|
}
|
|
default: {
|
|
System.out.println("未处理的类型A【" + type + "】\n包" + slea.toString());
|
|
break;
|
|
}
|
|
}
|
|
final int 奖励豆豆 = 1 * 豆豆奖励范围;
|
|
chr.modifyJF(4, 奖励豆豆);
|
|
c.getPlayer().dropMessage(5, "在小钢珠中获得: " + 奖励豆豆 + "小钢珠积分!");
|
|
if (chr.getMapId() == 809030000) {
|
|
final String notea = "恭喜你小钢珠成功中奖!当前中获得:" + 奖励豆豆 + "小钢珠积分!";
|
|
c.getSession().write(MaplePacketCreator.BeansGameMessage(1, 1, notea));
|
|
}
|
|
if (BeanGame.黄金狗设置局数 > 0 && BeanGame.第二排 == 9) {
|
|
BeanGame.黄金狗设置局数 = 0;
|
|
c.getSession().write(MaplePacketCreator.BeansHJG((byte) 0));
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
case 7: {
|
|
if (BeanGame.黄金狗设置局数 > 0) {
|
|
BeanGame.黄金狗设置局数 = 0;
|
|
c.getSession().write(MaplePacketCreator.BeansHJG((byte) 0));
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
case 11: {
|
|
slea.readShort();
|
|
力度 = Randomizer.rand(1000, 5000);
|
|
豆豆序号 = slea.readInt() + 1;
|
|
chr.setBeansRange(力度);
|
|
chr.setBeansNum(豆豆序号);
|
|
if (豆豆序号 == 1) {
|
|
chr.setCanSetBeansNum(false);
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
case 6: {
|
|
slea.skip(1);
|
|
final int 循环次数 = slea.readByte();
|
|
if (循环次数 == 0) {
|
|
c.sendPacket(MaplePacketCreator.enableActions());
|
|
return;
|
|
}
|
|
if (循环次数 != 1) {
|
|
slea.skip((循环次数 - 1) * 8);
|
|
}
|
|
if (chr.isCanSetBeansNum()) {
|
|
chr.setBeansNum(chr.getBeansNum() + 循环次数);
|
|
}
|
|
chr.gainBeans(-循环次数);
|
|
chr.setCanSetBeansNum(true);
|
|
break;
|
|
}
|
|
default: {
|
|
System.out.println("未处理未知类型【" + type + "】\n包" + slea.toString());
|
|
FileoutputUtil.logToFile("logs/小钢珠未知类型.txt", "时间: " + FileoutputUtil.NowTime() + " IP: " + chr.getClient().getSessionIPAddress() + " MAC: " + chr.getNowMacs() + chr.getName() + "类型【" + type + "】\n包" + slea.toString() + "\r\n");
|
|
break;
|
|
}
|
|
}
|
|
if (type == 11 || type == 6) {
|
|
for (int i = 0; i < 5; ++i) {
|
|
beansInfo.add(new MapleBeans(rand(1000, 5000), getBeanType(), chr.getBeansNum() + i));
|
|
}
|
|
c.getSession().write(MaplePacketCreator.showBeans(beansInfo));
|
|
c.sendPacket(MaplePacketCreator.enableActions());
|
|
}
|
|
c.getSession().write(MaplePacketCreator.updateBeans(c.getPlayer()));
|
|
c.sendPacket(MaplePacketCreator.enableActions());
|
|
}
|
|
|
|
private static int getBeanType() {
|
|
final int random = rand(1, 100);
|
|
final int beanType = 0;
|
|
return beanType;
|
|
}
|
|
|
|
public static final int get进洞次数() {
|
|
return BeanGame.进洞次数;
|
|
}
|
|
|
|
public static final void gain进洞次数(final int a) {
|
|
BeanGame.进洞次数 += a;
|
|
}
|
|
|
|
public static final void set进洞次数(final int a) {
|
|
BeanGame.进洞次数 = a;
|
|
}
|
|
|
|
private static int rand(final int lbound, final int ubound) {
|
|
return (int) (Math.random() * (double) (ubound - lbound + 1) + (double) lbound);
|
|
}
|
|
|
|
public static final void updateBeans(final LittleEndianAccessor slea, final MapleClient c) {
|
|
c.getSession().write(MaplePacketCreator.updateBeans(c.getPlayer()));
|
|
c.getSession().write(MaplePacketCreator.enableActions());
|
|
}
|
|
|
|
static {
|
|
进洞次数 = 0;
|
|
第一排 = 0;
|
|
第三排 = 0;
|
|
第二排 = 0;
|
|
启动打怪效果 = 0;
|
|
中奖率 = 0;
|
|
加速旋转 = 0;
|
|
打中女皇出现特效A = false;
|
|
打中女皇出现特效B = false;
|
|
蓝 = 0;
|
|
绿 = 0;
|
|
红 = 0;
|
|
黄金狗设置局数 = 0;
|
|
}
|
|
|
|
public enum BeansType {
|
|
开始打豆豆(0),
|
|
颜色求进洞(3),
|
|
进洞旋转(4),
|
|
奖励豆豆效果(5),
|
|
未知效果(6),
|
|
黄金狗(7),
|
|
奖励豆豆效果B(8),
|
|
领奖NPC(9);
|
|
|
|
final byte type;
|
|
|
|
private BeansType(final int type) {
|
|
this.type = (byte) type;
|
|
}
|
|
|
|
public byte getType() {
|
|
return this.type;
|
|
}
|
|
}
|
|
}
|