#include "stdafx.h" #include #include // #include #include #include // // //¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦´ // LF_ACTIVE_HANDLER_IMPL(S_003000_START_MARK_LF) { DEBUGGING_CODE_L3(""); return LFRET_SUCCESS_DEFAULT; } LF_ACTIVE_HANDLER_IMPL(S_003010_CHECK_MOVING_POLICY_LF) { DEBUGGING_CODE_L3(""); LF_RESULT lfRET = LFRET_SUCCESS_DEFAULT; // À̵¿ÇÏ´Â ¹æ¹ý °áÁ¤ÇÑ µÚ ƯÁ¤ À§Ä¡·Î Á¡ÇÁÇϵµ·Ï ¼öÁ¤ÇØ¾ß ÇÒ °ÍÀÌ´Ù. // ÀÏ´Ü Default¸¦ ÅëÇØ TEST_MOVINGÀ» ¼öÇàÇÑ´Ù. return lfRET; } // Moving test LF LF_ACTIVE_HANDLER_IMPL(S_003100_START_MARK_LF) { //DEBUGGING_CODE_L3(""); //return LFRET_SUCCESS_DEFAULT; return LFRET_SUCCESS_LOOP; } //¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬ // Űº¸µå À̵¿À» ÅëÇÑ ¿øÇÏ´Â À§Ä¡·Î °¡±â // S_003110_PRECHECK_CURRENT_POS_FOR_KBMOVE_LF // SHARED_LF::MOVE::CALC_NEXT_POSITION_KBMOVE // S_003120_SEND_CG_SYNC_KBMOVE_SYN_LF // S_003130_POSTCHECK_CURRENT_POS_FOR_KBMOVE_LF (goto S_003110_PRECHECK_CURRENT_POS_FOR_KBMOVE_LF) // LF_ACTIVE_HANDLER_IMPL(S_003110_PRECHECK_CURRENT_POS_FOR_KBMOVE_LF) { //DEBUGGING_CODE_L3(""); WiseUser* pUser = pDelegator->GetWiseUser(); WiseCharacter* pCHAR = pUser->GetSelectedCharacter(); UserSessionMgr& rMGR = pUser->GetSessionMgr(); ZoneControl& rZONE = pUser->ZoneController(); SEND_MESSAGE_BLOCK& rSENDMSG = pUser->SEND_MSG(); // ¸ñÇ¥ÇÏ´Â ÁÂÇ¥ ÀÖ´ÂÁö ÆÇ´Ü. ÀÖÀ¸¸é, ÇØ´ç À§Ä¡·Î °¡Áö À§ÇÑ Vector°è»ê // ±×·¸Áö ¾ÊÀ» °æ¿ì ·£´ý À̵¿. sMAP_POS_ARG rPOS; BOOL bRET = SHARED_LF::MOVE::CALC_NEXT_POSITION_KBMOVE(pDelegator, &rPOS, FALSE, /**/ TRUE, KEYBOARDMOVE_FOWARD); LF_RESULT lfRET = bRET ? LFRET_SUCCESS_DEFAULT : LFRET_SUCCESS_LOOP; return lfRET; } LF_ACTIVE_HANDLER_IMPL(S_003120_SEND_CG_SYNC_KBMOVE_SYN_LF) { //DEBUGGING_CODE_L3(""); WiseUser* pUser = pDelegator->GetWiseUser(); WiseCharacter* pCHAR = pUser->GetSelectedCharacter(); UserSessionMgr& rMGR = pUser->GetSessionMgr(); ZoneControl& rZONE = pUser->ZoneController(); SEND_MESSAGE_BLOCK& rSENDMSG = pUser->SEND_MSG(); MSG_CG_SYNC_KBMOVE_SYN& rMsgSYN = rSENDMSG.InstanceOf(); sMAP_POS_ARG rPOS; rZONE.MapPosCmd(ZoneControl::CMD_POS_GET_CUR_INFO, &rPOS); rMsgSYN.m_byMoveState = (BYTE)rPOS.SUBCMD; CopyMemory(&rMsgSYN.wvCurPos, rPOS.XYZ_DEST, sizeof(rMsgSYN.wvCurPos)); rMsgSYN.m_wAngle = (WORD)rPOS.ANGLE; rMsgSYN.m_wTileIndex = 100; // g_pHero->GetPathExplorer()->GetTile(); rMsgSYN.Encode(); rMGR.SendPacket(AGENT_SESSION, &rMsgSYN, sizeof(rMsgSYN)); return LFRET_SUCCESS_DEFAULT; } LF_ACTIVE_HANDLER_IMPL(S_003130_POSTCHECK_CURRENT_POS_FOR_KBMOVE_LF) { //DEBUGGING_CODE_L3(""); WiseUser* pUser = pDelegator->GetWiseUser(); WiseCharacter* pCHAR = pUser->GetSelectedCharacter(); UserSessionMgr& rMGR = pUser->GetSessionMgr(); ZoneControl& rZONE = pUser->ZoneController(); SEND_MESSAGE_BLOCK& rSENDMSG = pUser->SEND_MSG(); sMAP_POS_ARG rPOS; rZONE.MapPosCmd(ZoneControl::CMD_POS_GET_CUR_INFO, &rPOS); CopyMemory(rPOS.XYZ_CUR, rPOS.XYZ_DEST, sizeof(rPOS.XYZ_CUR)); rZONE.MapPosCmd(ZoneControl::CMD_POS_SET_CUR_INFO, &rPOS); // ... static FLOAT ubat[3] = //À¯¹èÆ®À§Ä¡ { -45.32f, 37.3f, -23.14f }; WzVector diff = *(WzVector*)rPOS.XYZ_CUR - *(WzVector*)ubat ; FLOAT fLength = Math_Vector2DLength(&diff); sSIG_STEP& rSIGNAL = sSIGNAL_BUFFER::InstanceOf(); rSIGNAL.SUBTYPE() = sSIG_STEP::ACTIVATE_JUMP_STEP; sSIG_STEP_ARG& rSIG_ARG = rSIGNAL.InstanceOf(); //if(fLength < 10.0f) // rSIG_ARG.SetInfo(LFG_MOVE, S_003900_EOL_FLOW_CONTROL_LF); //else rSIG_ARG.SetInfo(LFG_MOVE, S_003110_PRECHECK_CURRENT_POS_FOR_KBMOVE_LF); pDelegator->OnMsg(&rSIGNAL); return LFRET_SUCCESS_JUMP; } LF_ACTIVE_HANDLER_IMPL(S_003140_FAULT_TOLERENCE_POSITION_LF) { DEBUGGING_CODE_L3(""); return LFRET_SUCCESS_DEFAULT; } struct sFFF { ITimerBase A; ITimerBase B; }; static BOOL __StartTimer(ITimerBase& rTimer) { rTimer.Configure(ITimerBase::eTIMER_MODE::LOOP, 3*1000, TRUE); rTimer.StartTimer(); return TRUE; } // LF_ACTIVE_HANDLER_IMPL(S_003900_EOL_FLOW_CONTROL_LF) { //DEBUGGING_CODE_L3(""); static ITimerBase sTimer; static BOOL bsRET = __StartTimer(sTimer); static DWORD dwStartTick = GetTickCount(); if(sTimer.IsExpired()) { DWORD dwEndTick = GetTickCount(); //printf("sizeof %u\t%u\n", sizeof(ITimerBase), sizeof(testobject)); //printf("IDX %u %u %u %u\n", offsetof(testobject, iA),offsetof(testobject, iTimer),offsetof(testobject, ib),offsetof(testobject, ic)); printf("itimerbase*2 %u\n", sizeof(sFFF)); printf("Expired %u %u\n", dwEndTick, dwEndTick-dwStartTick); } return LFRET_SUCCESS_LOOP; } LF_ACTIVE_HANDLER_IMPL(S_003999_CLOSURE_MARK_LF) { DEBUGGING_CODE_L3(""); return LFRET_SUCCESS_DEFAULT; } // //¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦´