/* * JavaXYQ NPC Scripts * home page: http://javaxyq.googlecode.com */ package npc; import java.util.ArrayList; import java.util.List; import java.util.Random; import com.javaxyq.action.Actions; import com.javaxyq.battle.BattleEvent; import com.javaxyq.battle.BattleListener; import com.javaxyq.core.ApplicationHelper; import com.javaxyq.event.PlayerAdapter; import com.javaxyq.event.PlayerEvent; import com.javaxyq.model.Option; import com.javaxyq.model.Task; import com.javaxyq.widget.Player; /** * @author gongdewei * @date 2014-03-02 create */ public class n1008 extends PlayerAdapter { private Random rand = new Random(); public void talk(PlayerEvent evt) { System.out.println("talk: "+this.getClass().getName()); String chat="��Ϊ��ׯ��ϯ���ӣ���һ������ʦ��ʹ�����ҿ��԰�������ϰ���գ������Թ����������ز��"; Option[] options = new Option[5]; options[0] = new Option("��ϰ���գ�������","practice","1"); options[1] = new Option("��ϰ���գ��м���","practice","2"); options[2] = new Option("��ϰ���գ��߼���","practice","3"); options[3] = new Option("���������ز�","buy"); options[4] = new Option("��Ҳ��ȥ","close"); Option result = doTalk(evt.getPlayer(),chat,options); if(result!=null) { if("practice".equals(result.getAction())) { practice(evt); }else if("buy".equals(result.getAction())) { buy(evt); } } System.out.println("result: "+result); } /** * ���� * @param evt */ public void practice(PlayerEvent evt) { Task task = new Task(); patrol(task); // while(!task.isFinished()) { // } } /** * ���������ز� * @param evt */ public void buy(PlayerEvent evt) { } private boolean patrol(final Task task) { //System.out.println("patrol $task"); final Player player = context.getPlayer(); player.stop(true); //��ʼ��С�ֶ��� int level = context.getPlayer().getData().getLevel(); List<Player> t1 = new ArrayList<Player>(); List<Player> t2 = new ArrayList<Player>(); String[] elfs = {"2036","2037","2009","2010","2011","2012"}; String[] elfNames = {"�󺣹�","����","ܽ������","����","��������","����"}; Random random = new Random(); final int elfCount = random.nextInt(3)+1; for(int i=0;i<elfCount;i++) { int elflevel = Math.max(0,level+random.nextInt(4)-2); int elfIndex = random.nextInt(elfs.length); t2.add(dataManager.createElf(elfs[elfIndex], elfNames[elfIndex],elflevel)); } t1.add(player); //����ս�� ApplicationHelper.getApplication().doAction(this, Actions.ENTER_BATTLE,new Object[] {t1,t2}); int rounds = task.getInt("battle_rounds"); helper.prompt("ս��׼������"+(rounds==0?"һ":"��")+"�غϿ�ʼ��~~!",3000); window.addBattleListener(new BattleListener() { //ս��ʤ������ public void battleWin(BattleEvent e) { System.out.println("ս��ʤ��"); task.add("battle_rounds",1); task.add("battle_win",1); int exp = player.getData().level*(1000 + rand.nextInt(200))*elfCount/10; player.getData().exp += exp; helper.prompt("ս��ʤ�������"+exp+"�㾭�顣",3000); battleCompelete(); } //ս��ʧ�ܴ��� public void battleDefeated(BattleEvent e) { System.out.println("ս��ʧ��"); task.add("battle_rounds",1); //��ѪΪ0������ָ�һ����Ѫ if(player.getData().hp ==0) { player.getData().hp = 100; } helper.prompt("�벻���ҵ����ջ�����ôһ��~~!",3000); battleCompelete(); } public void battleTimeout(BattleEvent e) { } public void battleBreak(BattleEvent e) { } private void battleCompelete() { if(task.getInt("battle_rounds") >= 2) { task.setFinished(true); if(task.getInt("battle_rounds") == task.getInt("battle_win")) { helper.prompt("��ϲ����ȫʤ��ʵ��������",3000); }else { helper.prompt("�ڼ����䣬���ܰ�ս��ʤ��",3000); } } } }); return true; } }