using BrewMonster.Network;
using PerfectWorld.Scripts.Task;
namespace BrewMonster.Scripts.Task
{
public class PublicQuestInterface
{
PublicQuestInterface(){}
// static bool InitAddQuest(int task_id, int child_task_id, int* global_value, int size);
//
// //QuestSetStart������ bNotChangeRanking: true�� ��������������� false, �������������
// static bool QuestSetStart(int task_id, int* first_child_global_value, int size,bool bNotChangeRanking); // ��ʼһ��PQ����
// static bool QuestSetFinish(int task_id); // PQ�������
// //QuestSetNextChildTask�� ���� bNotChangeRanking: true�� ��������������� false, �������������
// static bool QuestSetNextChildTask(int task_id, int child_task_id, int* child_global_value, int size,bool bNotChangeRanking);
//
// static int GetCurSubTask(int task_id); // ��ȡPQ����ĵ�ǰ������id
// static int GetCurTaskStamp(int task_id); // ��ȡPQ�����ʱ��
// static int GetCurContrib(int task_id, int role_id); // ��ȡPQ����ǰ����
//
// static int GetCurAllPlace(int task_id, int role_id); // ��ȡ��ǰ��������
// static int GetCurClsPlace(int task_id, int role_id); // ��ȡ��ǰְҵ����
//
// static bool QuestAddPlayer(int task_id, int role_id);
public static bool QuestRemovePlayer(int task_id, int role_id)
{
return true;
}
// static bool QuestUpdatePlayerContrib(int task_id, int roleid, int inc_contrib);
//
public static long QuestGetGlobalValue(int lKey) // ��ȡPQ����ȫ�ֱ���
{
return EC_Game.GetGameRun().GetCommonData(lKey);
}
// static void QuestEnterWorldInit(int task_id, int role_id); // ���������ʼ��link�������
//
// static bool QuestSetRandContrib(int task_id, int fixed_contrib, int max_rand_contrib, int lowest_contrib); // ����PQ�������
//
// static void SetMonsterController(long ctrl_id, bool trigger); // ���ù��������
//
// static void QuestLeaveWorld(int task_id, int role_id);
};
public interface TaskInterface
{
bool Init(byte[] pActiveListBuf, int iActiveListLen, byte[] pFinishedListBuf,
int iFinishedListLen, byte[] pFinishedTimeListBuf, int iFinishedTimeListLen,
byte[] pFinishedCountListBuf, int iFinishedCountListLen, byte[] pStorageTaskListBuf,
int iStorageTaskListLen);
///
/// Get task state info for a task id. 清理并填充任务状态信息 // Clean and fill task state info
///
/// 任务ID // Task ID
/// 输出任务状态 // Output task state
/// 是否在激活列表中查找 // Whether to search in active list
void GetTaskStateInfo(uint ulTaskId, ref Task_State_info pInfo, bool bActiveTask);
bool CheckTaskForbid(uint task_id);
bool IsAtCrossServer();
bool IsDeliverLegal();
int GetCommonItemCount(uint ulCommonItem);
int GetTaskItemCount(uint ulTaskItem);
uint GetPlayerLevel();
uint GetGoldNum();
int GetGlobalValue(int lKey);
byte GetShapeMask();
int GetPos(float[] pos);
bool CheckSimpleTaskFinshConditon(uint task_id);
int GetFactionConsumeContrib();
int GetFactionExpContrib();
bool HasTask(uint ulTaskId);
#if _TASK_CLIENT
void GetTaskAwardPreview(uint ulTaskId,ref Task_Award_Preview p, bool bActiveTask = true);
uint GetTaskCount();
uint GetTaskId(uint ulIndex);
uint CanDeliverTask(uint ulTaskId);
void UpdateTaskUI(uint idTask, int reason);
#endif
public enum CommandTaskAction
{
CMD_EMOTION_BINDBUDDY = 1024, // If there are other non-expression actions, they will be 1025, 1026...
CMD_EMOTION_SITDOWN, // Sit down
CMD_JUMP_TRICKACTION, // Jump and roll
CMD_RUN_TRICKACTION, // Run and roll
}
// bool HasTask(uint taskId);
// bool CheckTaskForbid(uint taskId);
long GetGlobalValue(long key);
// uint GetPlayerLevel();
uint GetMaxHistoryLevel();
uint GetReincarnationCount();
bool IsRealmExpFull();
uint GetReputation();
// uint GetGoldNum();
int GetFactionRole();
bool IsInFaction(uint factionId);
bool IsMale();
uint GetPlayerOccupation();
uint GetCurPeriod();
bool IsGM();
bool IsShieldUser();
bool IsMarried();
// bool IsAtCrossServer();
bool IsWeddingOwner();
uint GetInvEmptySlot();
int GetFactionContrib();
// byte GetShapeMask();
int GetForce();
int GetForceReputation();
int GetForceContribution();
int GetExp();
int GetSP();
int GetForceActivityLevel();
bool HaveGotTitle(uint id_designation);
bool IsKing();
bool IsInTeam();
uint GetAccountTotalCash();
uint GetCurTime();
void SetFinishDlgShowTime(int t);
void NotifyServer( byte[] pBuf, uint sz);
bool CheckVersion();
StorageTaskList GetStorageTaskList();
void ShowPunchBagMessage(bool bSucced,bool bMax,uint MonsterTemplID,int dps,int dph);
ActiveTaskList GetActiveTaskList();
uint GetTaskMask();
byte[] GetFinishedTimeList();
void OnNewTask(int iTaskID);
void UpdateConfirmTasksMap();
void OnCompleteTask(int iTaskID);
void TakeAwayCommonItem(uint ulTemplId, uint ulNum);
void TakeAwayTaskItem(uint ulTemplId, uint ulNum);
void TakeAwayGold(uint ulNum) ;
void TakeAwayFactionConsumeContrib(int ulNum);
void TakeAwayFactionExpContrib(int ulNum){}
void OnGiveupTask(int iTaskID);
ATaskTemplMan GetTaskTemplMan();
bool IsTitleDataReady();
FinishedTaskList GetFinishedTaskList();
void NotifyClient(object pBuf, int sz) {}
int GetPlayerId();
void PopChatMessage(int iIndex, int dwNum=0);
void InitActiveTaskList();
bool CanDeliverCommonItem(uint ulItemTypes);
bool CanDeliverTaskItem(uint ulItemTypes);
static int GetTimeZoneBias()
{
return EC_Game.GetTimeZoneBias();
}
int GetCurHistoryStageIndex();
byte[] GetFinishedCntList();
uint GetObtainedGeneralCardCount();
uint GetObtainedGeneralCardCountByRank(int rank);
}
}