void CKanturu::SetState_TOWER_OF_REFINEMENT() { LogAddC(7, "[ KANTURU ] State(%d) -> TOWER_OF_REFINEMENT", this->m_iKanturuState); this->SetKanturuState(KANTURU_STATE_TOWER_OF_REFINEMENT); this->m_TowerOfRefinement.SetState(1); this->SetKanturuMapAttr(1); }
BOOL TMonsterAIElement::ApplyElementNightmareWarp(int iIndex, int iTargetIndex, TMonsterAIState * pAIState) { LPOBJ lpObj = &gObj[iIndex]; BYTE x = this->m_iX; BYTE y = this->m_iY; PMSG_MAGICATTACK_RESULT pAttack; PHeadSetBE((unsigned char *)&pAttack,0x19,sizeof(pAttack)); pAttack.MagicNumberH = SET_NUMBERH(AT_SKILL_TELEPORT); pAttack.MagicNumberL = SET_NUMBERL(AT_SKILL_TELEPORT); pAttack.SourceNumberH = SET_NUMBERH(iIndex); pAttack.SourceNumberL = SET_NUMBERL(iIndex); pAttack.TargetNumberH = SET_NUMBERH(iIndex); pAttack.TargetNumberL = SET_NUMBERL(iIndex); if ( lpObj->Type == OBJ_USER ) DataSend(iIndex,(unsigned char *)&pAttack,pAttack.h.size); MsgSendV2(lpObj,(unsigned char*)&pAttack,pAttack.h.size); LogAddC(2, "[%s] Warp [%d,%d] -> [%d,%d]", lpObj->Name, lpObj->X, lpObj->Y, x, y); gObjTeleportMagicUse(iIndex,x,y); lpObj->TargetNumber = -1; return FALSE; }
void CKanturuBattleOfNightmare::SetState_NOTIFY() { LogAddC(5, "[ KANTURU ][ BattleOfNightmare ] State(%d) -> NOTIFY", this->m_iBattleOfNightmareState); this->SetBattleOfNightmareState(KANTURU_NIGHTMARE_NOTIFY); }
void CKanturu::CheckUserOnKanturuBossMap() { for ( int iCount=OBJ_STARTUSERINDEX;iCount<OBJMAX;iCount++) { if ( gObj[iCount].Connected == PLAYER_PLAYING && gObj[iCount].Type == OBJ_USER && gObj[iCount].MapNumber == MAP_INDEX_KANTURU_BOSS) { #if (GS_CASTLE == 0 || GS_SPEC == 1) if ( gObj[iCount].m_bKanturuEntranceByNPC == FALSE ) { #endif if ( (gObj[iCount].Authority&2) != 2 ) { if ( gObj[iCount].RegenOk == 0 && gObj[iCount].m_State == 2 && gObj[iCount].Live == TRUE) { gObjMoveGate(iCount, 17); LogAddC(2, "[ KANTURU ][ Invalid User ] Invalid Kanturu Boss Map User[%s][%s]", gObj[iCount].AccountID, gObj[iCount].Name); } } #if (GS_CASTLE == 0 || GS_SPEC == 1) } #endif } } }
//0060E540 - identical void CRaklionBattleOfSelupan::SetState_DIE() { LogAddC(5, "[ RAKLION ][ BattleOfSelupan ] State(%d) -> DIE", this->m_iBattleOfSelupanState); this->m_RaklionSelupan.SelupanAct_BerserkCansel(); this->DeleteSummonMonster(); int aIndex = this->m_RaklionSelupan.GetSelupanTargetIndex(); LPOBJ lpObj = &gObj[aIndex]; g_RaklionUtil.SendMsgAllUser(lMsg.Get(3412),lpObj->Name); time_t ltime; time(<ime); tm * today=localtime(<ime); for ( int i = 0; i < g_RaklionBattleUserMng.GetBattleUserCount(); ++i ) { LogAdd("[Raklion][SelupanDie] %d/%d/%d %d:%d:%d %dth Winner : %s (%s)", today->tm_year+1900,today->tm_mon+1,today->tm_mday,today->tm_hour, today->tm_min,today->tm_sec,i+1,gObj[g_RaklionBattleUserMng.GetBattleUserIndex(i)].Name,gObj[g_RaklionBattleUserMng.GetBattleUserIndex(i)].AccountID); } this->SetBattleOfSelupanState(SELUPAN_STATE_DIE); }
void CRaklionBattleOfSelupan::SetState_PATTERN_6() { LogAddC(5, "[ RAKLION ][ BattleOfSelupan ] State(%d) -> PATTERN_6 // Life(%d/4800000)", this->m_iBattleOfSelupanState,this->m_RaklionSelupan.GetSelupanLife()); this->m_RaklionSelupan.SelupanAct_Berserk4(); this->SetBattleOfSelupanState(SELUPAN_STATE_PATTERN_6); }
void CKanturu::SetState_BATTLE_STANDBY() { LogAddC(7, "[ KANTURU ] State(%d) -> STANDBY", this->m_iKanturuState); g_KanturuBattleUserMng.ResetAllData(); this->SetKanturuState(KANTURU_STATE_BATTLE_STANTBY); this->m_BattleStanby.SetState(1); this->SetKanturuTimeAttackEventInfo(); }
BOOL TMonsterAIElement::ApplyElementAIChange(int iIndex, int iTargetIndex, TMonsterAIState * pAIState) { TMonsterAIGroup::ChangeAIOrder(this->m_iTargetType, this->m_iX); LogAddC(2, "[AI Change] Group %d AI Order %d", this->m_iTargetType, this->m_iX); return FALSE; }
void CKanturuBattleStanby::SetState_NOTIFY() { LogAddC(5, "[ KANTURU ][ BattleStanby ] State(%d) -> NOTIFY", this->m_iBattleStanbyState); this->SetBattleStanbyState(KANTURU_STANBY_NOTIFY); KANTURU_UTIL.SendMsgKauturuMapUser(lMsg.Get(MSGGET(13, 31))); }
void CRaklionBattleOfSelupan::SetPatternCondition(int iPattern,int iCondition) { if ( iPattern < 0 || iCondition < 0 ) { LogAddC(2,"[RAKLION][SetPatternCondition] error : PatternNum(%d), Condition(%d)",iPattern,iCondition); } this->m_PatternCondition[iPattern] = iCondition; }
void CRaklionBattleOfSelupan::SetState_NONE() { LogAddC(5, "[ RAKLION ][ BattleOfSelupan ] State(%d) -> NONE", this->m_iBattleOfSelupanState); this->m_RaklionSelupan.SelupanAct_BerserkCansel(); this->SetBattleOfSelupanState(SELUPAN_STATE_NONE); }
void CKanturuTowerOfRefinement::SetState_REVITALIZATION() { LogAddC(5, "[ KANTURU ][ TowerOfRefinement ] State(%d) -> REVITALIZATION", this->m_iTowerOfRefinementState); this->SetTowerOfRefinementState(KANTURU_TOWER_OF_REFINEMENT_REVITALIZATION); this->SetEntrancePermit(TRUE); this->SetUseTowerOfRefinement(TRUE); }
void CKanturuTowerOfRefinement::SetState_NOTIFY2() { LogAddC(5, "[ KANTURU ][ TowerOfRefinement ] State(%d) -> NOTIFY2", this->m_iTowerOfRefinementState); this->SetTowerOfRefinementState(KANTURU_TOWER_OF_REFINEMENT_NOTIFY2); this->SetEntrancePermit(FALSE); this->SetUseTowerOfRefinement(TRUE); }
void CCrywolf::SetState_NOTIFY_1() { UTIL.SendMapServerGroupMsg(lMsg.Get(MSGGET(12, 228))); LogAddC(4, "[ Crywolf ] State (%d) -> NOTIFY_1", this->m_iCrywolfState); this->SetCrywolfState(CRYWOLF_STATE_NOTIFY_1); this->SetCrywolfStateAppliedTime(CRYWOLF_STATE_NOTIFY_1); this->m_dwCrywolfNotifyMsgStartTick = GetTickCount(); }
void CCrywolf::SetState_END() { this->m_dwCrywolfStartProcTick = 0; this->m_bChangeAI = FALSE; LogAddC(4, "[ Crywolf ] State (%d) -> END", this->m_iCrywolfState); if ( this->m_bTurnUpBoss != FALSE && CHECK_LIMIT(this->m_iBossIndex, OBJ_MAXMONSTER) ) { if ( gObj[this->m_iBossIndex].Live != FALSE ) { UTIL.SendCrywolfUserAnyMsg(2, lMsg.Get(MSGGET(12, 233))); this->SetOccupationState(1); } } this->m_bTurnUpBoss = FALSE; this->SetCrywolfBossIndex(-1); if ( this->GetOccupationState() == 1 ) { UTIL.SendMapServerGroupMsg(lMsg.Get(MSGGET(12, 234))); this->SetOccupationState(1); LogAddTD("[ Crywolf ][MVP] FAIL.......!!"); } else { UTIL.SendMapServerGroupMsg(lMsg.Get(MSGGET(12, 235))); this->SetOccupationState(0); LogAddTD("[ Crywolf ][MVP] SUCCESS.......!!"); } this->SetCrywolfState(CRYWOLF_STATE_END); this->SetCrywolfStateAppliedTime(CRYWOLF_STATE_END); this->NotifyCrywolfCurrentState(); this->ChangeAI(0); for ( int iAltar = 205 ; iAltar <= 209 ; iAltar++) { int iUserIndex = g_CrywolfNPC_Altar.GetAltarUserIndex(iAltar); if ( iUserIndex != -1 ) { this->CalcGettingScore(iUserIndex, -1, 6); if ( this->GetOccupationState() != 1 ) { this->MakeRewardForAltarElf(iUserIndex); } } } g_CrywolfNPC_Altar.ResetAllAltar(); this->NotifyCrywolfPersonalRank(); }
void CKanturu::SetKanturuMapAttr(BYTE btLevel) { MapClass & KanturuMap = this->m_KanturuMap[btLevel]; memcpy(MapC[MAP_INDEX_KANTURU_BOSS].m_attrbuf, KanturuMap.m_attrbuf, 256*256); LogAddC(2, "[ KANTURU ][ Map Attr Change ] Map(%d) State(%d) DetailState(%d)", btLevel, this->GetKanturuState(), this->GetKanturuDetailState()); }
float ClassCalc::GetAttackRate(LPOBJ lpUser) { float AttackRate = 0.0f; #if (ENABLETEST_ZTLUA == 1) ZTLuaManager* LuaMng = new ZTLuaManager(FILE_LUA_CHARACTERBASICS); ZTLuaUnit::Bind(LuaMng->getLua()); ZTLuaItem::Bind(LuaMng->getLua()); LuaMng->Call("getAttackRate", lpUser->m_Index); AttackRate = LuaMng->getRef()->cast<float>(); ZTLuaManager::Delete(LuaMng); return AttackRate; #else if( lpUser->Class >= MAX_TYPE_PLAYER || lpUser->Class < 0 ) { LogAddC(2, "[ClassCalc] [%s] [%s] (GetAttackRate) wrong class (%d)", lpUser->AccountID, lpUser->Name, lpUser->Class); return 0.0f; } int Level = lpUser->Level + lpUser->MasterLevel; WORD Class = lpUser->Class; // ---- if( Class == CLASS_WIZARD || Class == CLASS_DARKLORD ) { AttackRate = (float)(Level * this->m_Data[Class].PvPAttackRateFact1 + lpUser->Dexterity * this->m_Data[Class].PvPAttackRateFact2); } else if( Class == CLASS_KNIGHT || Class == CLASS_ELF || Class == CLASS_MAGUMSA || Class == CLASS_SUMMONER ) { AttackRate = (float)(Level * this->m_Data[Class].PvPAttackRateFact1 + (lpUser->Dexterity * this->m_Data[Class].PvPAttackRateFact2) / this->m_Data[Class].PvPAttackRateDiv); } else if( Class == CLASS_FIGHTER ) { AttackRate = (float)(Level * this->m_Data[Class].PvPAttackRateFact1RF + (lpUser->Dexterity * this->m_Data[Class].PvPAttackRateFact2) / this->m_Data[Class].PvPAttackRateDiv); } // ---- if( AttackRate <= 0.0f ) { LogAddC(2, "[ClassCalc] [GetAttackRate] [%s][%s] Returned wrong value: %f", lpUser->AccountID, lpUser->Name, AttackRate); } // ---- return AttackRate; #endif }
void ClassCalc::GetAttackSpeed(LPOBJ lpUser) { #if (ENABLETEST_ZTLUA == 1) ZTLuaManager* LuaMng = new ZTLuaManager(FILE_LUA_CHARACTERBASICS); ZTLuaUnit::Bind(LuaMng->getLua()); ZTLuaItem::Bind(LuaMng->getLua()); LuaMng->Call("setAttackSpeed", lpUser->m_Index); ZTLuaManager::Delete(LuaMng); #else if( lpUser->Class >= MAX_TYPE_PLAYER || lpUser->Class < 0 ) { LogAddC(2, "[ClassCalc] [%s] [%s] (GetAttackSpeed) wrong class (%d)", lpUser->AccountID, lpUser->Name, lpUser->Class); return; } int Dexterity = lpUser->Dexterity + lpUser->AddDexterity; //if( Dexterity > g_MaxStatValue || Dexterity < 0 ) // { // LogAddC(2, "[ClassCalc] [%s] [%s] (GetAttackSpeed) wrong Dexterity (%d)", // lpUser->AccountID, lpUser->Name, Dexterity); // return; //} if( this->m_Data[lpUser->Class].AttackSpeedDiv < 0 ) { LogAddC(2, "[ClassCalc] [%s] [%s] (GetAttackSpeed) wrong AttackSpeedDiv (%d) for class (%d)", lpUser->AccountID, lpUser->Name, this->m_Data[lpUser->Class].AttackSpeedDiv, lpUser->Class); return; } if( this->m_Data[lpUser->Class].MagicSpeedDiv < 0 ) { LogAddC(2, "[ClassCalc] [%s] [%s] (GetAttackSpeed) wrong MagicSpeedDiv (%d) for class (%d)", lpUser->AccountID, lpUser->Name, this->m_Data[lpUser->Class].MagicSpeedDiv, lpUser->Class); return; } lpUser->m_AttackSpeed = Dexterity / this->m_Data[lpUser->Class].AttackSpeedDiv; lpUser->m_MagicSpeed = Dexterity / this->m_Data[lpUser->Class].MagicSpeedDiv; #endif }
void CKanturuTowerOfRefinement::SetState_NOTIFY1() { LogAddC(5, "[Kanturu][TowerOfRefinement] State(%d) -> NOTIFY1", this->m_iTowerOfRefinementState); this->SetTowerOfRefinementState(KANTURU_TOWER_OF_REFINEMENT_NOTIFY1); this->SetEntrancePermit(TRUE); this->SetUseTowerOfRefinement(TRUE); KANTURU_UTIL.SendMsgKauturuMapUser(lMsg.Get(MSGGET(13, 29))); }
void CRaklionSelupan::SetSelupanSkillDelay(int SkillDelay) { if ( SkillDelay < 0 || SkillDelay > 50000 ) { LogAddC(2,"[ RAKLION ][ SetSelupanSkillDelay ] SkillDelay error : Delay(%d)",this->m_iSelupanSkillDelay); return; } this->m_iSelupanSkillDelay = SkillDelay; }
void CKanturuBattleOfNightmare::SetState_NONE() { LogAddC(5, "[ KANTURU ][ BattleOfNightmare ] State(%d) -> NONE", this->m_iBattleOfNightmareState); this->SetBattleOfNightmareState(KANTURU_NIGHTMARE_NONE); TMonsterAIGroup::DelGroupInstance(this->m_iNightmareAIGroupNumber); LogAddTD("[ KANTURU ][ BattleOfNightmare ] DelGroupInstance SetState_NONE"); }
void CRaklionSelupan::SetSelupanObjIndex(int arg1) { if ( arg1 < 0 || arg1 > OBJ_MAXMONSTER ) { LogAddC(2,"[ RAKLION ][ SetSelupanObjIndex ] SelupanObjIndex error : Index(%d)", arg1); return; } this->m_iSelupanObjIndex = arg1; }
int CRaklionSelupan::GetSelupanSkillDelay() { if ( this->m_iSelupanSkillDelay < 0 || this->m_iSelupanSkillDelay > 50000 ) { LogAddC(2,"[ RAKLION ][ GetSelupanSkillDelay ] SkillDelay error : Delay(%d)",this->m_iSelupanSkillDelay); return -1; } return this->m_iSelupanSkillDelay; }
void CKanturuTowerOfRefinement::SetState_NONE() { LogAddC(5, "[ KANTURU ][ TowerOfRefinement ] State(%d) -> NONE", this->m_iTowerOfRefinementState); this->SetTowerOfRefinementState(KANTURU_TOWER_OF_REFINEMENT_NONE); this->SetEntrancePermit(FALSE); this->SetUseTowerOfRefinement(FALSE); g_KanturuBattleUserMng.ResetAllData(); }
void CKanturuTowerOfRefinement::SetState_CLOSE() { LogAddC(5, "[ KANTURU ][ TowerOfRefinement ] State(%d) -> CLOSE", this->m_iTowerOfRefinementState); this->SetTowerOfRefinementState(KANTURU_TOWER_OF_REFINEMENT_CLOSE); this->SetEntrancePermit(FALSE); this->SetUseTowerOfRefinement(TRUE); KANTURU_UTIL.SendMsgKauturuMapUser(lMsg.Get(MSGGET(13, 30))); }
void CRaklionBattleOfSelupan::SetState_STANDBY() { LogAddC(5, "[ RAKLION ][ BattleOfSelupan ] State(%d) -> STANDBY", this->m_iBattleOfSelupanState); this->m_RaklionSelupan.InitSelupanObjIndex(); this->m_RaklionSelupan.CreateSelupan(); this->m_RaklionSelupan.SelupanAct_BerserkCansel(); this->SetBattleOfSelupanState(SELUPAN_STATE_STANDBY); }
BOOL CCashShop::CGCashShopOpen(LPOBJ lpObj, PMSG_REQ_CASHSHOPOPEN * lpMsg) { BYTE btResult = 0; if ( this->bCashItemListReload == TRUE ) { btResult = 6; } if ( g_bConnectShopServer == TRUE && g_bShopServerConnectState == FALSE ) { btResult = 6; } if ( !gObjIsAccontConnect(lpObj->m_Index, lpObj->AccountID)) { LogAddC(2, lMsg.Get(MSGGET(1, 175)), lpObj->AccountID, lpObj->m_Index); return FALSE; } if ( lpObj->Connected <= PLAYER_LOGGED || lpObj->CloseCount != -1 ) return FALSE; if ( lpMsg->btShopOpenType == 1 ) { if ( lpObj->m_IfState.use > 0 ) { btResult = 8; } if ( btResult == 0 ) { lpObj->m_IfState.use = 1; lpObj->m_IfState.type = 19; lpObj->m_IfState.state = 1; this->CGCashPoint(lpObj); } } else if ( lpMsg->btShopOpenType == 0 ) { lpObj->m_IfState.use = 0; lpObj->m_IfState.type = 0; lpObj->m_IfState.state = 0; } PMSG_ANS_CASHSHOPOPEN pMsg; pMsg.btResult = btResult; PHeadSubSetB((LPBYTE)&pMsg, 0xF5, 0x02, sizeof(PMSG_ANS_CASHSHOPOPEN)); DataSend(lpObj->m_Index, (LPBYTE)&pMsg, pMsg.head.size); return TRUE; }
void CRaklionBattleOfSelupan::SetState_PATTERN_4() { LogAddC(5, "[ RAKLION ][ BattleOfSelupan ] State(%d) -> PATTERN_4 // Life(%d/4800000)", this->m_iBattleOfSelupanState,this->m_RaklionSelupan.GetSelupanLife()); if ( this->m_RaklionSelupan.GetBerserkIndex() != 2 ) { this->m_RaklionSelupan.SelupanAct_Berserk2(); } this->SetBattleOfSelupanState(SELUPAN_STATE_PATTERN_4); }
void cPostServer::vLogAddTD(char* szLog, ...) { char szBuffer[512]=""; va_list pArguments; va_start( pArguments, szLog); // review vsprintf(szBuffer, szLog, pArguments); va_end(pArguments); LogAddC(4,"[%s] %s",this->m_Name,szBuffer); }
void cExtraServer::vLogAddC(BYTE Color, char* szLog, ...) { char szBuffer[512]=""; va_list pArguments; va_start( pArguments, szLog); // review vsprintf(szBuffer, szLog, pArguments); va_end(pArguments); LogAddC(Color,"[%s] %s",this->m_Name,szBuffer); }