/** * */ package com.javaxyq.action; import java.util.List; import com.javaxyq.core.ApplicationHelper; import com.javaxyq.core.DataManager; import com.javaxyq.event.PlayerAdapter; import com.javaxyq.event.PlayerEvent; import com.javaxyq.event.PlayerListener; import com.javaxyq.model.Task; import com.javaxyq.task.TaskManager; import com.javaxyq.widget.Player; /** * @author dewitt * */ public class DefaultTalkAction extends PlayerAdapter { @Override public void talk(PlayerEvent evt) { Player player = evt.getPlayer(); String npcId = player.getId(); System.out.println("talk: "+evt); //������ TaskManager taskManager = ApplicationHelper.getApplication().getTaskManager(); List tasks = taskManager.getTasksFor(player.getName()); if(tasks!=null && !tasks.isEmpty()) { //TODO �������ʱ��������ѡ���б� if(tasks.size()>1) { System.out.println("npc["+player.getName()+"]��"+tasks.size()+"������"); for (int i = 0; i < tasks.size(); i++) { System.out.println(tasks.get(i)); } } Task task = (Task) tasks.get(0); if(!task.isFinished() && task.isAutoSpark()) { task.set("target",player); //�����������ɣ��򷵻أ������������Ի� if(taskManager.process(task))return; } } //npc�¼� PlayerListener listener = (PlayerListener) ApplicationHelper.getApplication().getScriptEngine().loadNPCScript(npcId); if(listener!=null) {//�����¼� listener.talk(evt); }else {//û���¼�����Ĭ�϶Ի� DataManager dataManager = ApplicationHelper.getApplication().getDataManager(); String chat = dataManager.findChat(npcId); if (chat != null) { ApplicationHelper.getApplication().doTalk(player, chat); } } } }