📄 gameplayer.cpp
字号:
{ if ((*ritr)->getPacketID() == packetID) { pPacket = (*ritr); break; } } if (pPacket == NULL) throw NoSuchElementException("packet history is empty"); return pPacket; __END_CATCH}//--------------------------------------------------------------------------------////--------------------------------------------------------------------------------void GamePlayer::addEvent (Event* pEvent) throw (Error){ __BEGIN_TRY m_EventManager.addEvent(pEvent); __END_CATCH}//--------------------------------------------------------------------------------////--------------------------------------------------------------------------------void GamePlayer::deleteEvent (Event::EventClass EClass) throw (Error){ __BEGIN_TRY m_EventManager.deleteEvent(EClass); __END_CATCH}//--------------------------------------------------------------------------------////--------------------------------------------------------------------------------Event* GamePlayer::getEvent (Event::EventClass EClass) throw (Error){ __BEGIN_TRY return m_EventManager.getEvent(EClass); __END_CATCH}////////////////////////////////////////////////////////////////////////// get debug string////////////////////////////////////////////////////////////////////////string GamePlayer::toString () const throw (Error){ __BEGIN_TRY StringStream msg; ////////////////////////////////////////////////// // enter critical section ////////////////////////////////////////////////// __ENTER_CRITICAL_SECTION(m_Mutex) msg << "GamePlayer(SocketID:" << m_pSocket->getSOCKET() << ",Host:" << m_pSocket->getHost() << ")" ; ////////////////////////////////////////////////// // leave critical section ////////////////////////////////////////////////// __LEAVE_CRITICAL_SECTION(m_Mutex) return msg.toString(); __END_CATCH}////////////////////////////////////////////////////////////////////////// verifySpeed////////////////////////////////////////////////////////////////////////bool GamePlayer::verifySpeed(Packet* pPacket) throw (Error){ __BEGIN_TRY bool SpeedCheck = false; Timeval CurrentTime; getCurrentTime( CurrentTime ); if( m_SpeedVerify.tv_sec == 0 ) {// getCurrentTime( m_SpeedVerify );// m_SpeedVerify.tv_sec += SpeedCheckDelay; // m_SpeedVerify 甫 泅犁 矫埃栏肺 被捞 罐酒棵 鞘夸绝捞 // 窃荐 霉 何盒俊辑 罐酒 初篮 吧 傲 敬促. // 2002.1.7 by bezz m_SpeedVerify.tv_sec = CurrentTime.tv_sec + SpeedCheckDelay; SpeedCheck = true; } else { // 盔贰 朝酒客具瞪 距沥 矫埃俊辑 5檬 弧府 朝酒坷搁 胶乔靛琴捞促. if( CurrentTime.tv_sec > m_SpeedVerify.tv_sec - maxTimeGap ) { // 胶乔靛 琴 烹苞甫 沁促搁 促澜 朝酒棵 距沥 矫埃阑 悸泼 秦具 茄促.// getCurrentTime( m_SpeedVerify );// m_SpeedVerify.tv_sec += SpeedCheckDelay; // m_SpeedVerify 甫 泅犁 矫埃栏肺 被捞 罐酒棵 鞘夸绝捞 // 窃荐 霉 何盒俊辑 罐酒 初篮 吧 傲 敬促. // 2002.1.7 by bezz m_SpeedVerify.tv_sec = CurrentTime.tv_sec + SpeedCheckDelay; SpeedCheck = true; m_VerifyCount = max(0, m_VerifyCount-1); } else {// getCurrentTime( m_SpeedVerify );// m_SpeedVerify.tv_sec += SpeedCheckDelay; // m_SpeedVerify 甫 泅犁 矫埃栏肺 被捞 罐酒棵 鞘夸绝捞 // 窃荐 霉 何盒俊辑 罐酒 初篮 吧 傲 敬促. // 2002.1.7 by bezz m_SpeedVerify.tv_sec = CurrentTime.tv_sec + SpeedCheckDelay; if( m_VerifyCount > maxVerifyCount ) { SpeedCheck = false; } else { SpeedCheck = true; } m_VerifyCount++; } } /* // 农府贸狼 胶乔靛甫 罐酒柯促. if (m_pCreature == NULL || pPacket == NULL) { return true; } // 痹沥 矫埃 捞傈俊 度 鞍篮 菩哦捞 荐绞锅 朝酒坷搁 立加阑 楼弗促. Timeval VerifyTime; getCurrentTime(VerifyTime); PacketID_t PacketID = pPacket->getPacketID(); bool SpeedCheck = true; if (m_pCreature->isSlayer()) { Slayer* pSlayer = dynamic_cast<Slayer*>(m_pCreature); Speed_t AttackSpeed = pSlayer->getAttackSpeed(); BYTE Speed = 0; if (AttackSpeed < 33) { Speed = 0; } else if (AttackSpeed < 67) { Speed = 1; } else { Speed = 2; } if (PacketID == Packet::PACKET_CG_MOVE) { // 捞傈 矫埃捞尔 泅犁 矫埃捞尔 眉农秦辑 歹 狐弗 矫埃俊 菩哦捞 朝酒吭栏搁 捞扒 摹磐促. if (VerifyTime <= m_MoveSpeedVerify) { SpeedCheck = false; } getCurrentTime(m_MoveSpeedVerify); getCurrentTime(m_AttackSpeedVerify); // 促澜俊 公宏啊 啊厘 弧府 朝酒棵 荐 乐绰 啊瓷茄 矫埃阑 历厘秦 敌促. // 葛配 荤捞努阑 鸥绊 乐促搁 捞悼加档啊 临绢电促. BYTE RealSpeed = 0; if (pSlayer->hasRideMotorcycle()) { //RealSpeed = 2; RealSpeed = 1; } else // 葛配荤捞努捞 酒聪促. { //RealSpeed = 4; RealSpeed = 2; } // 促澜 镜 荐 乐绰 矫埃阑 悸泼茄促. m_MoveSpeedVerify.tv_sec += RealSpeed / 10; m_MoveSpeedVerify.tv_usec += RealSpeed* 100000; m_AttackSpeedVerify.tv_sec += RealSpeed / 10; m_AttackSpeedVerify.tv_usec += RealSpeed* 100000; } else if (PacketID == Packet::PACKET_CG_ATTACK) { if (VerifyTime <= m_AttackSpeedVerify) { SpeedCheck = false; } // 公扁甫 公均阑 甸绊 乐绰瘤 眉农茄促. Item* pItem = pSlayer->getWearItem(Slayer::WEAR_RIGHTHAND); Item::ItemClass IClass = Item::ITEM_CLASS_SKULL; if (pItem != NULL) { IClass = pItem->getItemClass(); } getCurrentTime(m_AttackSpeedVerify); getCurrentTime(m_MoveSpeedVerify); BYTE RealSpeed = 0; // 浇肺快 胶乔靛 if (Speed == 0) { switch (IClass) { // 937 case Item::ITEM_CLASS_SWORD : RealSpeed = 9; break; // 1187 case Item::ITEM_CLASS_BLADE : case Item::ITEM_CLASS_CROSS : case Item::ITEM_CLASS_MACE : RealSpeed = 11; break; // 1250 case Item::ITEM_CLASS_AR : RealSpeed = 12; break; // 1000 case Item::ITEM_CLASS_SG : RealSpeed = 10; break; // 1375 case Item::ITEM_CLASS_SR : RealSpeed = 13; break; // 1000 case Item::ITEM_CLASS_SMG : RealSpeed = 10; break; // 扁夯 傍拜 875 default : RealSpeed = 8; break; } } else if (Speed == 1) // 畴钢 胶乔靛 { switch (IClass) { // 812 case Item::ITEM_CLASS_SWORD : RealSpeed = 8; break; // 1062 case Item::ITEM_CLASS_BLADE : case Item::ITEM_CLASS_CROSS : case Item::ITEM_CLASS_MACE : RealSpeed = 10; break; // 875 case Item::ITEM_CLASS_AR : RealSpeed = 8; break; // 1125 case Item::ITEM_CLASS_SG : RealSpeed = 11; break; // 1250 case Item::ITEM_CLASS_SR : RealSpeed = 12; break; // 875 case Item::ITEM_CLASS_SMG : RealSpeed = 8; break; // 扁夯 傍拜 875 default : RealSpeed = 8; break; } } else // 菩胶飘 胶乔靛 { switch (IClass) { // 687 case Item::ITEM_CLASS_SWORD : RealSpeed = 6; break; // 938 case Item::ITEM_CLASS_BLADE : case Item::ITEM_CLASS_CROSS : case Item::ITEM_CLASS_MACE : RealSpeed = 9; break; // 750 case Item::ITEM_CLASS_AR : RealSpeed = 7; break; // 1000 case Item::ITEM_CLASS_SG : RealSpeed = 10; break; // 1125 case Item::ITEM_CLASS_SR : RealSpeed = 11; break; // 750 case Item::ITEM_CLASS_SMG : RealSpeed = 7; break; // 875 default : RealSpeed = 8; break; } } // 胶乔靛 肯拳 沥氓 RealSpeed -= 2; m_AttackSpeedVerify.tv_sec += RealSpeed / 10; m_AttackSpeedVerify.tv_usec += ((RealSpeed % 10)* 100000); m_MoveSpeedVerify.tv_sec += RealSpeed / 10; m_MoveSpeedVerify.tv_usec += ((RealSpeed % 10)* 100000); } else if (PacketID == Packet::PACKET_CG_SKILL_TO_OBJECT || PacketID == Packet::PACKET_CG_SKILL_TO_SELF || PacketID == Packet::PACKET_CG_SKILL_TO_TILE) { } else { SpeedCheck = true; } } else if (m_pCreature->isVampire()) { Vampire* pVampire = dynamic_cast<Vampire*>(m_pCreature); Speed_t AttackSpeed = pVampire->getAttackSpeed(); BYTE Speed = 0; if (AttackSpeed < 33) { Speed = 0; } else if (AttackSpeed < 67) { Speed = 1; } else { Speed = 2; } if (PacketID == Packet::PACKET_CG_MOVE) { // 捞傈 矫埃捞尔 泅犁 矫埃捞尔 眉农秦辑 歹 狐弗 矫埃俊 菩哦捞 朝酒吭栏搁 捞扒 摹磐促. if (VerifyTime <= m_MoveSpeedVerify) { SpeedCheck = false; } getCurrentTime(m_MoveSpeedVerify); getCurrentTime(m_AttackSpeedVerify); BYTE RealSpeed = 0; // 促澜俊 公宏啊 啊厘 弧府 朝酒棵 荐 乐绰 啊瓷茄 矫埃阑 历厘秦 敌促. // 冠零 函脚阑 窍绊 乐促搁 加档啊 弧扼柳促. 檬寸 匙 鸥老阑 捞悼 茄促. if (pVampire->isFlag(Effect::EFFECT_CLASS_TRANSFORM_TO_BAT)) { //RealSpeed = 2; RealSpeed = 1; } else // 畴钢 惑怕俊急 檬寸 滴鸥老阑 捞悼茄促. { //RealSpeed = 4; RealSpeed = 2; } m_MoveSpeedVerify.tv_sec += (RealSpeed / 10); m_AttackSpeedVerify.tv_sec += (RealSpeed / 10); m_MoveSpeedVerify.tv_usec += (RealSpeed* 100000); m_AttackSpeedVerify.tv_usec += (RealSpeed* 100000); } else if (PacketID == Packet::PACKET_CG_ATTACK) { if (VerifyTime <= m_AttackSpeedVerify) { SpeedCheck = false; } getCurrentTime(m_AttackSpeedVerify); getCurrentTime(m_MoveSpeedVerify); BYTE RealSpeed = 0; if (Speed == 0) // 浇肺快 胶乔靛 875 { RealSpeed = 8; } else if (Speed == 1) // 畴钢 胶乔靛 875 { RealSpeed = 8; } else // 菩胶飘 胶乔靛 812 { RealSpeed = 8; } // 胶乔靛 肯拳 沥氓 RealSpeed -= 2; m_AttackSpeedVerify.tv_sec += RealSpeed / 10; m_AttackSpeedVerify.tv_usec += ((RealSpeed % 10)* 100000); m_MoveSpeedVerify.tv_sec += RealSpeed / 10; m_MoveSpeedVerify.tv_usec += ((RealSpeed % 10)* 100000); } else if (PacketID == Packet::PACKET_CG_SKILL_TO_OBJECT || PacketID == Packet::PACKET_CG_SKILL_TO_SELF || PacketID == Packet::PACKET_CG_SKILL_TO_TILE) { } else { SpeedCheck = true; } } else {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -