📄 gameserveritemtest.cpp
字号:
#include "GameServerItemTest.h"#include "Item.h"//#include "LuckInfo.h"#include "VariableManager.h"#include "ItemFactoryManager.h"#include "Vampire.h"#include "Slayer.h"#include "Zone.h"#include "ZoneUtil.h"#include "ItemUtil.h"voidGameServerItemTest::testLuckPercent(){ __BEGIN_TEST_CASE/* int luckLevel = 10; const LuckInfo& luckInfo = g_pLuckInfoManager->getLuckInfo(luckLevel); // 100% --> 100000 g_pVariableManager->setVariable(ITEM_LUCK_PERCENT, 100); int variableLuckRatio = g_pVariableManager->getVariable(ITEM_LUCK_PERCENT); CPPUNIT_ASSERT( variableLuckRatio==100 ); CPPUNIT_ASSERT( luckInfo.getMaxRatio()==100000 ); // 200% --> 50000 g_pVariableManager->setVariable(ITEM_LUCK_PERCENT, 200); variableLuckRatio = g_pVariableManager->getVariable(ITEM_LUCK_PERCENT); CPPUNIT_ASSERT( variableLuckRatio==200 ); CPPUNIT_ASSERT( luckInfo.getMaxRatio()==50000 ); // 0% : min捞 10%捞扁 锭巩俊.. 10% --> 10000 g_pVariableManager->setVariable(ITEM_LUCK_PERCENT, 0); variableLuckRatio = g_pVariableManager->getVariable(ITEM_LUCK_PERCENT); CPPUNIT_ASSERT( variableLuckRatio==0 ); CPPUNIT_ASSERT( luckInfo.getMaxRatio()==1000000 ); // 500% --> 20000 g_pVariableManager->setVariable(ITEM_LUCK_PERCENT, 500); variableLuckRatio = g_pVariableManager->getVariable(ITEM_LUCK_PERCENT); CPPUNIT_ASSERT( variableLuckRatio==500 ); CPPUNIT_ASSERT( luckInfo.getMaxRatio()==20000 );*/ __END_TEST_CASE}// 酒捞袍 馒侩 夸备瓷仿摹啊 弥措蔼(ex> 轨颇捞绢 饭骇100)阑 逞绢啊绰 芭锭皋// 夸备瓷仿摹狼 弥措蔼阑 力茄秦滚赴 巴俊 措茄 抛胶飘 -_-; 2003.1.6void GameServerItemTest::testRequireMaxVampire(){ __BEGIN_TEST_CASE Item::ItemClass IClass = Item::ITEM_CLASS_VAMPIRE_COAT; ItemType_t IType = 10; // Level 90 list<OptionType_t> OTypes; OTypes.push_back( 186 ); // Level 50 Item* pItem = g_pItemFactoryManager->createItem(IClass, IType, OTypes); Vampire* pVampire = new Vampire; Zone* pZone = getZoneByZoneID( 11 ); CPPUNIT_ASSERT( pZone!=NULL ); pVampire->setZone( pZone ); pVampire->setLevel( 100 ); pVampire->setSex( MALE ); CPPUNIT_ASSERT( pVampire->isRealWearing(pItem)==true ); pVampire->setLevel( 10 ); CPPUNIT_ASSERT( pVampire->isRealWearing(pItem)==false ); SAFE_DELETE(pVampire); SAFE_DELETE(pItem); __END_TEST_CASE}void GameServerItemTest::testRequireMaxSlayer(){ __BEGIN_TEST_CASE Item::ItemClass IClass = Item::ITEM_CLASS_COAT; ItemType_t IType = 14; // SUM 280 list<OptionType_t> OTypes; OTypes.push_back( 186 ); // SUM 100 Item* pItem = g_pItemFactoryManager->createItem(IClass, IType, OTypes); Slayer* pSlayer = new Slayer; Zone* pZone = getZoneByZoneID( 11 ); CPPUNIT_ASSERT( pZone!=NULL ); pSlayer->setZone( pZone ); pSlayer->setSTR( 100, ATTR_CURRENT ); pSlayer->setDEX( 100, ATTR_CURRENT ); pSlayer->setINT( 100, ATTR_CURRENT ); pSlayer->setSex( MALE ); CPPUNIT_ASSERT( pSlayer->isRealWearing(pItem)==true ); pSlayer->setSTR( 90, ATTR_CURRENT ); pSlayer->setDEX( 100, ATTR_CURRENT ); pSlayer->setINT( 100, ATTR_CURRENT ); CPPUNIT_ASSERT( pSlayer->isRealWearing(pItem)==false ); SAFE_DELETE(pSlayer); SAFE_DELETE(pItem); __END_TEST_CASE}void GameServerItemTest::testGiveNewbieItem(){ __BEGIN_TEST_CASE Slayer* pSlayer = new Slayer; Zone* pZone = getZoneByZoneID( 11 ); CPPUNIT_ASSERT( pZone != NULL ); pSlayer->setZone( pZone ); Inventory* pInventory = pSlayer->getInventory(); CPPUNIT_ASSERT( addNewbieItemToInventory( pSlayer ) ); CPPUNIT_ASSERT( addNewbieGoldToInventory( pSlayer ) ); CPPUNIT_ASSERT( addNewbieItemToGear( pSlayer ) ); Item* pItem; // 瓷仿摹俊 蝶扼辑 窍唱甫 涝扁 锭巩俊 NULL眉农窍绰 何盒俊辑 // Fail捞 窍唱绰 哆霸 等促 -_-; pItem = pInventory->getItem( 2, 3 ); CPPUNIT_ASSERT( pItem != NULL ); CPPUNIT_ASSERT( pItem->getItemClass() == Item::ITEM_CLASS_BLADE ); CPPUNIT_ASSERT( pItem->getItemType() == 0 ); CPPUNIT_ASSERT( pItem->getOptionTypeSize() == 0 ); pItem = pInventory->getItem( 4, 3 ); CPPUNIT_ASSERT( pItem != NULL ); CPPUNIT_ASSERT( pItem->getItemClass() == Item::ITEM_CLASS_SWORD ); CPPUNIT_ASSERT( pItem->getItemType() == 0 ); CPPUNIT_ASSERT( pItem->getOptionTypeSize() == 0 ); pItem = pInventory->getItem( 0, 3 ); CPPUNIT_ASSERT( pItem != NULL ); CPPUNIT_ASSERT( pItem->getItemClass() == Item::ITEM_CLASS_CROSS ); CPPUNIT_ASSERT( pItem->getItemType() == 0 ); CPPUNIT_ASSERT( pItem->getOptionTypeSize() == 0 ); pItem = pInventory->getItem( 0, 0 ); CPPUNIT_ASSERT( pItem != NULL ); CPPUNIT_ASSERT( pItem->getItemClass() == Item::ITEM_CLASS_MACE ); CPPUNIT_ASSERT( pItem->getItemType() == 0 ); CPPUNIT_ASSERT( pItem->getOptionTypeSize() == 0 ); pItem = pInventory->getItem( 2, 0 ); CPPUNIT_ASSERT( pItem != NULL ); CPPUNIT_ASSERT( pItem->getItemClass() == Item::ITEM_CLASS_AR ); CPPUNIT_ASSERT( pItem->getItemType() == 0 ); CPPUNIT_ASSERT( pItem->getOptionTypeSize() == 0 ); pItem = pInventory->getItem( 4, 0 ); CPPUNIT_ASSERT( pItem != NULL ); CPPUNIT_ASSERT( pItem->getItemClass() == Item::ITEM_CLASS_MAGAZINE ); CPPUNIT_ASSERT( pItem->getItemType() == 2 ); CPPUNIT_ASSERT( pItem->getOptionTypeSize() == 0 ); CPPUNIT_ASSERT( pItem->getNum() == 20 ); pItem = pInventory->getItem( 9, 4 ); CPPUNIT_ASSERT( pItem != NULL ); CPPUNIT_ASSERT( pItem->getItemClass() == Item::ITEM_CLASS_POTION ); CPPUNIT_ASSERT( pItem->getItemType() == 0 ); CPPUNIT_ASSERT( pItem->getOptionTypeSize() == 0 ); CPPUNIT_ASSERT( pItem->getNum() == 9 ); pItem = pInventory->getItem( 9, 5 ); CPPUNIT_ASSERT( pItem != NULL ); CPPUNIT_ASSERT( pItem->getItemClass() == Item::ITEM_CLASS_POTION ); CPPUNIT_ASSERT( pItem->getItemType() == 5 ); CPPUNIT_ASSERT( pItem->getOptionTypeSize() == 0 ); CPPUNIT_ASSERT( pItem->getNum() == 9 ); CPPUNIT_ASSERT( pSlayer->getGold() == 500 ); pItem = pSlayer->getWearItem( Slayer::WEAR_BODY ); CPPUNIT_ASSERT( pItem != NULL ); CPPUNIT_ASSERT( pItem->getItemClass() == Item::ITEM_CLASS_COAT ); CPPUNIT_ASSERT( pItem->getItemType() == ((pSlayer->getSex()==MALE)?0:1) ); CPPUNIT_ASSERT( pItem->getOptionTypeSize() == 0 ); pItem = pSlayer->getWearItem( Slayer::WEAR_LEG ); CPPUNIT_ASSERT( pItem != NULL ); CPPUNIT_ASSERT( pItem->getItemClass() == Item::ITEM_CLASS_TROUSER ); CPPUNIT_ASSERT( pItem->getItemType() == ((pSlayer->getSex()==MALE)?0:1) ); CPPUNIT_ASSERT( pItem->getOptionTypeSize() == 0 ); __END_TEST_CASE}void GameServerItemTest::testUpgradeItemType(){ __BEGIN_TEST_CASE Item::ItemClass IClass; // Sword: 0~11. 10捞 unique IClass = Item::ITEM_CLASS_SWORD; CPPUNIT_ASSERT(getUpgradeItemType(IClass, 0, 1)==1); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 1, 1)==2); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 2, 1)==3); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 3, 1)==4); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 4, 1)==5); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 5, 1)==6); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 6, 1)==7); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 7, 1)==8); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 8, 1)==9); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 9, 1)==11); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 10, 1)==10); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 11, 1)==11); // 2窜 诀臂 CPPUNIT_ASSERT(getUpgradeItemType(IClass, 0, 2)==2); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 1, 2)==3); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 2, 2)==4); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 3, 2)==5); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 4, 2)==6); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 5, 2)==7); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 6, 2)==8); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 7, 2)==9); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 8, 2)==10); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 9, 2)==11); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 10, 2)==10); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 11, 2)==11); // 3窜 诀臂 CPPUNIT_ASSERT(getUpgradeItemType(IClass, 0, 3)==3); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 1, 3)==4); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 2, 3)==5); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 3, 3)==6); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 4, 3)==7); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 5, 3)==8); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 6, 3)==9); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 7, 3)==11); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 8, 3)==11); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 9, 3)==11); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 10, 3)==10); CPPUNIT_ASSERT(getUpgradeItemType(IClass, 11, 3)==11); __END_TEST_CASE}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -