From ac11e34a080702ddbb95ba0488dfbdb96f7a60c3 Mon Sep 17 00:00:00 2001 From: ozg Date: Tue, 15 Apr 2014 22:44:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=80=E8=83=BD=E9=83=A8=E5=88=86=E5=AE=8C?= =?UTF-8?q?=E6=88=90=EF=BC=8C=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Classes/RPGBaseSceneLayer.h | 6 + Classes/RPGComputingResults.h | 2 +- Classes/RPGData.h | 3 +- Classes/RPGMapChoicePlayerMenuLayer.cpp | 34 +- Classes/RPGMapChoicePlayerMenuLayer.h | 7 +- Classes/RPGMapItemsMenuLayer.cpp | 58 ++-- Classes/RPGMapMenuLayer.cpp | 17 +- Classes/RPGMapSceneLayer.h | 2 +- Classes/RPGMapSkillMenuLayer.cpp | 316 +++++++++++++++++- Classes/RPGMapSkillMenuLayer.h | 37 +- Classes/RPGMapStatusMenuLayer.cpp | 32 +- Classes/RPGResultsLogic.cpp | 88 ++++- Classes/RPGResultsLogic.h | 2 + README.md | 2 +- Resources/db.sys | Bin 327680 -> 327680 bytes Resources/scene_map_cns.plist | 6 +- .../UserInterfaceState.xcuserstate | Bin 71707 -> 71867 bytes .../UserInterfaceState.xcuserstate | Bin 59956 -> 60775 bytes 18 files changed, 553 insertions(+), 59 deletions(-) diff --git a/Classes/RPGBaseSceneLayer.h b/Classes/RPGBaseSceneLayer.h index 186990b..690a626 100755 --- a/Classes/RPGBaseSceneLayer.h +++ b/Classes/RPGBaseSceneLayer.h @@ -33,6 +33,12 @@ using namespace CocosDenshion; //查询现有道具 #define ITEMS_QUERY "select * from items where id in(%s) order by id asc" +//获取一个player的详细数据 +#define PLAYER_DETAIL_QUERY "select p.*, arms.name_cns as arms_name, armor.name_cns as armor_name from player as p left join items as arms on p.items_id_arms = arms.id left join items as armor on p.items_id_armor = armor.id where p.id = %i" + +//查询一个角色的技能 +#define SKILL_QUERY "select * from skill where id in(%s)" + //技能的属性 enum RPGSkillAttr { diff --git a/Classes/RPGComputingResults.h b/Classes/RPGComputingResults.h index 8319baf..6dc63de 100644 --- a/Classes/RPGComputingResults.h +++ b/Classes/RPGComputingResults.h @@ -21,7 +21,7 @@ public: static int attackResults(float attack, float defense); //一般攻击 static int skillAttackResults(float playerSkillAttack, float skillAttack, RPGSkillAttr attackAttr, float skillDefense, RPGSkillAttr defenseAttr); //技能攻击 - static int skillCureResults(float playerSkillAttack, float skillAttack); //治疗 + static int skillCureResults(float playerSkillAttack, float skillAttack); //技能治疗 static int itemCure(int itemsId); //道具治疗 diff --git a/Classes/RPGData.h b/Classes/RPGData.h index bbb1339..705462c 100644 --- a/Classes/RPGData.h +++ b/Classes/RPGData.h @@ -82,7 +82,8 @@ public: int m_dataId; string m_name; float m_skillAttack; - int m_mp; + int m_MP; + int m_type; RPGSkill(); virtual ~RPGSkill(); diff --git a/Classes/RPGMapChoicePlayerMenuLayer.cpp b/Classes/RPGMapChoicePlayerMenuLayer.cpp index 40156ba..4739c8c 100644 --- a/Classes/RPGMapChoicePlayerMenuLayer.cpp +++ b/Classes/RPGMapChoicePlayerMenuLayer.cpp @@ -21,7 +21,7 @@ RPGMapChoicePlayerMenuLayer::~RPGMapChoicePlayerMenuLayer() CCLog("RPGMapChoicePlayerMenuLayer 释放"); } -bool RPGMapChoicePlayerMenuLayer::init(CppSQLite3DB *db, CCObject* target, SEL_CallFuncO selector, float width, float height) +bool RPGMapChoicePlayerMenuLayer::init(CppSQLite3DB *db, CCString* titleLab, CCObject* target, SEL_CallFuncO selector, float width, float height) { if(CCLayerColor::initWithColor(ccc4(0, 0, 0, 200), width, height)) { @@ -41,6 +41,16 @@ bool RPGMapChoicePlayerMenuLayer::init(CppSQLite3DB *db, CCObject* target, SEL_C mainMenu->setPosition(CCPointZero); this->addChild(mainMenu); + CCMenuItemSprite *menuBack = (CCMenuItemSprite*)mainMenu->getChildByTag(kRPGMapChoicePlayerMenuLayerTagMainMenuBack); + if(!menuBack) + { + menuBack = CCMenuItemSprite::create(CCSprite::createWithSpriteFrameName("commons_btn_back_04.png"), CCSprite::createWithSpriteFrameName("commons_btn_back_04.png"), this, menu_selector(RPGMapChoicePlayerMenuLayer::onMenu)); + menuBack->setPosition(ccp(40, 600)); + menuBack->setTag(kRPGMapChoicePlayerMenuLayerTagMainMenuBack); + menuBack->setScale(0.5); + mainMenu->addChild(menuBack); + } + this->setPosition(ccp((CCDirector::sharedDirector()->getWinSize().width - width) / 2, (CCDirector::sharedDirector()->getWinSize().height - height) / 2)); //显示4个角色 @@ -48,9 +58,20 @@ bool RPGMapChoicePlayerMenuLayer::init(CppSQLite3DB *db, CCObject* target, SEL_C CppSQLite3Query query = this->m_db->execQuery(PLAYER_QUERY); while(!query.eof()) { - CCArray *frames = OzgCCUtility::createSpriteFrames(CCString::createWithFormat("%s_0.png", query.getStringField("tex_prefix"))->getCString(), 3, 4); + CCSprite *playerSprite = NULL; + if(query.getIntField("hp") <= 0) + { + //死亡 + CCArray *frames = OzgCCUtility::createSpriteFrames(CCString::createWithFormat("%s_2.png", query.getStringField("tex_prefix"))->getCString(), 3, 4); + playerSprite = CCSprite::createWithSpriteFrame((CCSpriteFrame*)frames->objectAtIndex(10)); + } + else + { + //正常 + CCArray *frames = OzgCCUtility::createSpriteFrames(CCString::createWithFormat("%s_0.png", query.getStringField("tex_prefix"))->getCString(), 3, 4); + playerSprite = CCSprite::createWithSpriteFrame((CCSpriteFrame*)frames->objectAtIndex(1)); + } - CCSprite *playerSprite = CCSprite::createWithSpriteFrame((CCSpriteFrame*)frames->objectAtIndex(1)); CCMenuItemSprite *player = (CCMenuItemSprite*)mainMenu->getChildByTag(kRPGMapChoicePlayerMenuLayerTagMainMenuPlayer + query.getIntField("id")); if(!player) { @@ -66,6 +87,8 @@ bool RPGMapChoicePlayerMenuLayer::init(CppSQLite3DB *db, CCObject* target, SEL_C } query.finalize(); + addLab(this, kRPGMapChoicePlayerMenuLayerTagTitleLab, titleLab, ccp(600, 400)); + CCNotificationCenter::sharedNotificationCenter()->addObserver(this->m_target, selector, "onChoicePlayer", NULL); return true; @@ -73,10 +96,10 @@ bool RPGMapChoicePlayerMenuLayer::init(CppSQLite3DB *db, CCObject* target, SEL_C return false; } -RPGMapChoicePlayerMenuLayer* RPGMapChoicePlayerMenuLayer::create(CppSQLite3DB *db, CCObject* target, SEL_CallFuncO selector, float width, float height) +RPGMapChoicePlayerMenuLayer* RPGMapChoicePlayerMenuLayer::create(CppSQLite3DB *db, CCString* titleLab, CCObject* target, SEL_CallFuncO selector, float width, float height) { RPGMapChoicePlayerMenuLayer *obj = new RPGMapChoicePlayerMenuLayer(); - if(obj && obj->init(db, target, selector, width, height)) + if(obj && obj->init(db, titleLab, target, selector, width, height)) { obj->autorelease(); return obj; @@ -88,4 +111,5 @@ RPGMapChoicePlayerMenuLayer* RPGMapChoicePlayerMenuLayer::create(CppSQLite3DB *d void RPGMapChoicePlayerMenuLayer::onMenu(cocos2d::CCObject *pObject) { CCNotificationCenter::sharedNotificationCenter()->postNotification("onChoicePlayer", pObject); + } diff --git a/Classes/RPGMapChoicePlayerMenuLayer.h b/Classes/RPGMapChoicePlayerMenuLayer.h index 52d181d..b9acb3b 100644 --- a/Classes/RPGMapChoicePlayerMenuLayer.h +++ b/Classes/RPGMapChoicePlayerMenuLayer.h @@ -22,6 +22,7 @@ #include "cocos2d.h" #include "RPGBaseSceneLayer.h" +#include "RPGBaseSceneLayer.h" #include "OzgCCUtility.h" USING_NS_CC; @@ -29,7 +30,9 @@ USING_NS_CC; enum RPGMapChoicePlayerMenuLayerTag { kRPGMapChoicePlayerMenuLayerTagMainMenu = 1, + kRPGMapChoicePlayerMenuLayerTagMainMenuBack = 4, kRPGMapChoicePlayerMenuLayerTagBg = 2, + kRPGMapChoicePlayerMenuLayerTagTitleLab = 3, kRPGMapChoicePlayerMenuLayerTagMainMenuPlayer = 100 }; @@ -48,8 +51,8 @@ public: RPGMapChoicePlayerMenuLayer(); virtual ~RPGMapChoicePlayerMenuLayer(); - bool init(CppSQLite3DB *db, CCObject* target, SEL_CallFuncO selector, float width, float height); - static RPGMapChoicePlayerMenuLayer* create(CppSQLite3DB *db, CCObject* target, SEL_CallFuncO selector, float width, float height); + bool init(CppSQLite3DB *db, CCString* titleLab, CCObject* target, SEL_CallFuncO selector, float width, float height); + static RPGMapChoicePlayerMenuLayer* create(CppSQLite3DB *db, CCString* titleLab, CCObject* target, SEL_CallFuncO selector, float width, float height); }; #endif /* defined(__OzgGameRPG__RPGMapChoicePlayerMenuLayer__) */ diff --git a/Classes/RPGMapItemsMenuLayer.cpp b/Classes/RPGMapItemsMenuLayer.cpp index cdfff91..6ba862d 100644 --- a/Classes/RPGMapItemsMenuLayer.cpp +++ b/Classes/RPGMapItemsMenuLayer.cpp @@ -248,8 +248,8 @@ void RPGMapItemsMenuLayer::onMenu(cocos2d::CCObject *pObject) void RPGMapItemsMenuLayer::onDialog(cocos2d::CCObject *pObject) { this->getParent()->removeChildByTag(kRPGMapItemsMenuLayerTagDialog, true); + this->getParent()->removeChildByTag(kRPGMapSceneLayerTagChoicePlayerMenuLayerBg, true); this->getParent()->removeChildByTag(kRPGMapSceneLayerTagChoicePlayerMenuLayer, true); - this->getParent()->removeChildByTag(kRPGMapSceneLayerTagChoicePlayerLab, true); this->setVisible(true); } @@ -272,13 +272,19 @@ void RPGMapItemsMenuLayer::onButton(cocos2d::CCObject *pSender, CCControlEvent e //因为动态获取地图的大小会导致了菜单层显示错位,所以定死了 float width = 960; float height = 640; - RPGMapChoicePlayerMenuLayer *choicePlayer = RPGMapChoicePlayerMenuLayer::create(this->m_db, this, callfuncO_selector(RPGMapItemsMenuLayer::onChoicePlayer), width, height); + + //临时背景 + CCTMXTiledMap *mainBg = CCTMXTiledMap::create("map_menu3_style1.tmx"); + mainBg->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width / 2, CCDirector::sharedDirector()->getWinSize().height / 2)); + mainBg->setAnchorPoint(ccp(0.5, 0.5)); + mainBg->setTag(kRPGMapSceneLayerTagChoicePlayerMenuLayerBg); + this->getParent()->addChild(mainBg); + + CCString *title = CCString::createWithFormat(((CCString*)this->m_stringList->objectForKey("menu_items_choice"))->getCString(), this->m_selectedItems->m_name.c_str()); + RPGMapChoicePlayerMenuLayer *choicePlayer = RPGMapChoicePlayerMenuLayer::create(this->m_db, title, this, callfuncO_selector(RPGMapItemsMenuLayer::onChoicePlayer), width, height); choicePlayer->setTag(kRPGMapSceneLayerTagChoicePlayerMenuLayer); this->getParent()->addChild(choicePlayer); - CCString *labText = CCString::createWithFormat(((CCString*)this->m_stringList->objectForKey("menu_items_choice"))->getCString(), this->m_selectedItems->m_name.c_str()); - addLab(this->getParent(), kRPGMapSceneLayerTagChoicePlayerLab, labText, ccp(650, 470)); - this->setVisible(false); } @@ -286,25 +292,35 @@ void RPGMapItemsMenuLayer::onChoicePlayer(cocos2d::CCObject *pObject) { SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav"); - CCMenuItem *player = (CCMenuItem*)pObject; - - bool isSuccess = RPGResultsLogic::useItems(this->m_db, player->getTag() - kRPGMapChoicePlayerMenuLayerTagMainMenuPlayer, this->m_selectedItems->m_dataId); - if(!isSuccess) + CCMenuItem *menuItem = (CCMenuItem*)pObject; + if(menuItem->getTag() == kRPGMapChoicePlayerMenuLayerTagMainMenuBack) { - //道具使用失败 - CCSize winSize = CCDirector::sharedDirector()->getWinSize(); - RPGDialogLayer *dialog = RPGDialogLayer::create(((CCString*)this->m_stringList->objectForKey("menu_items_fail"))->getCString(), ((CCString*)this->m_stringList->objectForKey("confirm_exit_ok"))->getCString(), kRPGMapItemsMenuLayerTagDialogOK, winSize.width, winSize.height, this, menu_selector(RPGMapItemsMenuLayer::onDialog)); - dialog->setTag(kRPGMapItemsMenuLayerTagDialog); - this->getParent()->addChild(dialog); - + //按了退出 + this->getParent()->removeChildByTag(kRPGMapSceneLayerTagChoicePlayerMenuLayerBg, true); + this->getParent()->removeChildByTag(kRPGMapSceneLayerTagChoicePlayerMenuLayer, true); + this->setVisible(true); } else { - //道具使用成功 - this->getParent()->removeChildByTag(kRPGMapSceneLayerTagChoicePlayerMenuLayer, true); - this->getParent()->removeChildByTag(kRPGMapSceneLayerTagChoicePlayerLab, true); - this->setVisible(true); - - this->loadItemsData(); + bool isSuccess = RPGResultsLogic::useItems(this->m_db, menuItem->getTag() - kRPGMapChoicePlayerMenuLayerTagMainMenuPlayer, this->m_selectedItems->m_dataId); + if(!isSuccess) + { + //道具使用失败 + CCSize winSize = CCDirector::sharedDirector()->getWinSize(); + RPGDialogLayer *dialog = RPGDialogLayer::create(((CCString*)this->m_stringList->objectForKey("menu_items_fail"))->getCString(), ((CCString*)this->m_stringList->objectForKey("confirm_exit_ok"))->getCString(), kRPGMapItemsMenuLayerTagDialogOK, winSize.width, winSize.height, this, menu_selector(RPGMapItemsMenuLayer::onDialog)); + dialog->setTag(kRPGMapItemsMenuLayerTagDialog); + this->getParent()->addChild(dialog); + + } + else + { + //道具使用成功 + this->getParent()->removeChildByTag(kRPGMapSceneLayerTagChoicePlayerMenuLayerBg, true); + this->getParent()->removeChildByTag(kRPGMapSceneLayerTagChoicePlayerMenuLayer, true); + this->setVisible(true); + + this->loadItemsData(); + } } + } diff --git a/Classes/RPGMapMenuLayer.cpp b/Classes/RPGMapMenuLayer.cpp index 5938833..ff665e9 100755 --- a/Classes/RPGMapMenuLayer.cpp +++ b/Classes/RPGMapMenuLayer.cpp @@ -28,7 +28,7 @@ RPGMapMenuLayer::~RPGMapMenuLayer() // CCTextureCache::sharedTextureCache()->dumpCachedTextureInfo(); -// CCLog("RPGMapMenuLayer释放"); + CCLog("RPGMapMenuLayer释放"); } bool RPGMapMenuLayer::init(CCDictionary* stringList, CppSQLite3DB* db, float width, float height) @@ -280,9 +280,20 @@ void RPGMapMenuLayer::setDefaultInterface() CppSQLite3Query query = this->m_db->execQuery(PLAYER_QUERY); while(!query.eof()) { - CCArray *frames = OzgCCUtility::createSpriteFrames(CCString::createWithFormat("%s_0.png", query.getStringField("tex_prefix"))->getCString(), 3, 4); + CCSprite *playerSprite = NULL; + if(query.getIntField("hp") <= 0) + { + //死亡 + CCArray *frames = OzgCCUtility::createSpriteFrames(CCString::createWithFormat("%s_2.png", query.getStringField("tex_prefix"))->getCString(), 3, 4); + playerSprite = CCSprite::createWithSpriteFrame((CCSpriteFrame*)frames->objectAtIndex(10)); + } + else + { + //正常 + CCArray *frames = OzgCCUtility::createSpriteFrames(CCString::createWithFormat("%s_0.png", query.getStringField("tex_prefix"))->getCString(), 3, 4); + playerSprite = CCSprite::createWithSpriteFrame((CCSpriteFrame*)frames->objectAtIndex(1)); + } - CCSprite *playerSprite = CCSprite::createWithSpriteFrame((CCSpriteFrame*)frames->objectAtIndex(1)); playerSprite->setPosition(ccp(150, playerY)); playerSprite->setScale(2); playerSprite->setTag(kRPGMapMenuLayerTagDefualtPlayerTex + query.getIntField("id")); diff --git a/Classes/RPGMapSceneLayer.h b/Classes/RPGMapSceneLayer.h index 7993263..d8d730a 100755 --- a/Classes/RPGMapSceneLayer.h +++ b/Classes/RPGMapSceneLayer.h @@ -20,7 +20,7 @@ enum RPGMapSceneLayerTag kRPGMapSceneLayerTagMainMenuCommand = 4, kRPGMapSceneLayerTagMenuLayer = 5, kRPGMapSceneLayerTagChoicePlayerMenuLayer = 6, - kRPGMapSceneLayerTagChoicePlayerLab = 7, + kRPGMapSceneLayerTagChoicePlayerMenuLayerBg = 7, kRPGMapSceneLayerTagPlayer = 1999, kRPGMapSceneLayerTagNPC = 2000 diff --git a/Classes/RPGMapSkillMenuLayer.cpp b/Classes/RPGMapSkillMenuLayer.cpp index af44731..3cafd09 100644 --- a/Classes/RPGMapSkillMenuLayer.cpp +++ b/Classes/RPGMapSkillMenuLayer.cpp @@ -9,6 +9,8 @@ #include "RPGMapSkillMenuLayer.h" #include "RPGMapMenuLayer.h" #include "RPGMapSceneLayer.h" +#include "RPGMapChoicePlayerMenuLayer.h" +#include "OzgCCUtility.h" RPGMapSkillMenuLayer::RPGMapSkillMenuLayer() { @@ -18,6 +20,7 @@ RPGMapSkillMenuLayer::RPGMapSkillMenuLayer() RPGMapSkillMenuLayer::~RPGMapSkillMenuLayer() { this->m_stringList->release(); + this->m_skillList->release(); CCLog("RPGMapSkillMenuLayer 释放"); } @@ -31,6 +34,13 @@ bool RPGMapSkillMenuLayer::init(cocos2d::CCDictionary *stringList, CppSQLite3DB this->m_db = db; + this->m_skillList = new CCArray(); + this->m_skillList->init(); + + this->m_statusIsDefault = true; + + this->m_enabledPlayerSkill = true; //默认可以点击技能项 + CCMenu *mainMenu = CCMenu::create(); mainMenu->setTag(kRPGMapSkillMenuLayerTagMainMenu); mainMenu->setAnchorPoint(CCPointZero); @@ -52,6 +62,43 @@ bool RPGMapSkillMenuLayer::init(cocos2d::CCDictionary *stringList, CppSQLite3DB mainBg->setTag(kRPGMapSkillMenuLayerTagBg); this->addChild(mainBg); + //显示上面的4个角色 + float playerX = 200; + CppSQLite3Query query = this->m_db->execQuery(PLAYER_QUERY); + while(!query.eof()) + { + CCSprite *playerSprite = NULL; + if(query.getIntField("hp") <= 0) + { + //死亡 + CCArray *frames = OzgCCUtility::createSpriteFrames(CCString::createWithFormat("%s_2.png", query.getStringField("tex_prefix"))->getCString(), 3, 4); + playerSprite = CCSprite::createWithSpriteFrame((CCSpriteFrame*)frames->objectAtIndex(10)); + } + else + { + //正常 + CCArray *frames = OzgCCUtility::createSpriteFrames(CCString::createWithFormat("%s_0.png", query.getStringField("tex_prefix"))->getCString(), 3, 4); + playerSprite = CCSprite::createWithSpriteFrame((CCSpriteFrame*)frames->objectAtIndex(1)); + } + + CCMenuItemSprite *player = (CCMenuItemSprite*)mainMenu->getChildByTag(kRPGMapSkillMenuLayerTagMainMenuPlayer + query.getIntField("id")); + if(!player) + { + player = CCMenuItemSprite::create(playerSprite, playerSprite, this, menu_selector(RPGMapSkillMenuLayer::onMenu)); + player->setPosition(ccp(playerX, 560)); + player->setScale(2); + player->setTag(kRPGMapSkillMenuLayerTagMainMenuPlayer + query.getIntField("id")); + mainMenu->addChild(player); + } + + playerX += 200; + query.nextRow(); + } + query.finalize(); + + //默认选中第一个 + this->onMenu(mainMenu->getChildByTag(kRPGMapSkillMenuLayerTagMainMenuPlayer + 1)); + return true; } return false; @@ -69,11 +116,93 @@ RPGMapSkillMenuLayer* RPGMapSkillMenuLayer::create(cocos2d::CCDictionary *string return NULL; } +//CCTableView +void RPGMapSkillMenuLayer::scrollViewDidScroll(CCScrollView *scrollView) +{ + +} + +void RPGMapSkillMenuLayer::scrollViewDidZoom(CCScrollView *scrollView) +{ + +} + +void RPGMapSkillMenuLayer::tableCellTouched(CCTableView *tableView, CCTableViewCell *cell) +{ + +} + +CCSize RPGMapSkillMenuLayer::cellSizeForTable(CCTableView *tableView) +{ + return CCSizeMake(tableView->getContentSize().width, 80); +} + +CCTableViewCell* RPGMapSkillMenuLayer::tableCellAtIndex(CCTableView *tableView, unsigned int idx) +{ + CCTableViewCell *cell = tableView->dequeueCell(); + if (!cell) + { + cell = new CCTableViewCell(); + cell->autorelease(); + } + else + cell->removeAllChildrenWithCleanup(true); + + float x = 100; + for (int i = 0; i < 5; i++) + { + int index = idx * 5 + i; + + if(index >= this->m_skillList->count()) + break; + + RPGSkill *skillData = (RPGSkill*)this->m_skillList->objectAtIndex(index); + + CCControlButton *skillBtn = CCControlButton::create(CCString::createWithFormat("%s (%i)", skillData->m_name.c_str(), skillData->m_MP)->getCString(), "Arial", 22); + skillBtn->setPosition(ccp(x, 0)); + skillBtn->setTag(skillData->m_dataId); + skillBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(RPGMapSkillMenuLayer::onButton), CCControlEventTouchUpInside); + cell->addChild(skillBtn); + + //如果是非回复类技能的话,则禁用点击 + if(skillData->m_type != 2) + { + skillBtn->setTitleColorForState(ccc3(144, 144, 144), CCControlStateNormal); + skillBtn->setEnabled(false); + } + //MP不够的话,禁用点击 + else if(!this->m_enabledPlayerSkill) + { + skillBtn->setTitleColorForState(ccc3(144, 144, 144), CCControlStateNormal); + skillBtn->setEnabled(false); + } + + x += 170; + } + + return cell; +} + +unsigned int RPGMapSkillMenuLayer::numberOfCellsInTableView(CCTableView *tableView) +{ + int rowItemCount = 5; + int size = this->m_skillList->count(); + + if(size % rowItemCount == 0) + return size / rowItemCount; + else + return size / rowItemCount + 1; +} +//CCTableView end + //private void RPGMapSkillMenuLayer::onMenu(cocos2d::CCObject *pObject) { + //第一次显示数据的话则不播放效果音 + if(!this->m_statusIsDefault) + SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav"); + CCMenuItem *menuItem = (CCMenuItem*)pObject; - SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav"); switch (menuItem->getTag()) { @@ -98,4 +227,189 @@ void RPGMapSkillMenuLayer::onMenu(cocos2d::CCObject *pObject) break; } + if(menuItem->getTag() >= kRPGMapSkillMenuLayerTagMainMenuPlayer && menuItem->getTag() <= kRPGMapSkillMenuLayerTagMainMenuPlayer + 99) + { +// CCLog("点击了上面4个player的其中一个"); + CCMenu *mainMenu = (CCMenu*)this->getChildByTag(kRPGMapSkillMenuLayerTagMainMenu); + + CppSQLite3Query query = this->m_db->execQuery(PLAYER_QUERY); + while(!query.eof()) + { + if(menuItem->getTag() == kRPGMapSkillMenuLayerTagMainMenuPlayer + query.getIntField("id")) + { + this->m_statusIsDefault = false; + + int dataId = query.getIntField("id"); + this->setPlayerSkill(dataId); + + //选中的光标部分 + CCMenuItemSprite *player = (CCMenuItemSprite*)mainMenu->getChildByTag(kRPGMapSkillMenuLayerTagMainMenuPlayer + dataId); + + CCSprite *handCursor = (CCSprite*)this->getChildByTag(kRPGMapMenuLayerTagHandCursor); + if(!handCursor) + { + handCursor = CCSprite::createWithSpriteFrameName("gui_hand.png"); + handCursor->setScale(0.3); + handCursor->setTag(kRPGMapMenuLayerTagHandCursor); + this->addChild(handCursor); + } + + //光标的位置 + handCursor->setPosition(ccp(player->getPositionX() + 60, 555)); + + break; + } + query.nextRow(); + } + query.finalize(); + } + +} + +void RPGMapSkillMenuLayer::setPlayerSkill(int dataId) +{ + CCTableView *tableView = (CCTableView*)this->getChildByTag(kRPGMapSkillMenuLayerTagItemListTable); + if(!tableView) + { + tableView = CCTableView::create(this, CCSizeMake(850, 420)); + tableView->setDirection(kCCScrollViewDirectionVertical); + tableView->setPosition(ccp(30, 30)); + tableView->setDelegate(this); + tableView->setVerticalFillOrder(kCCTableViewFillTopDown); + tableView->setTag(kRPGMapSkillMenuLayerTagItemListTable); + this->addChild(tableView); + } + + CppSQLite3Query query = this->m_db->execQuery(CCString::createWithFormat(PLAYER_DETAIL_QUERY, dataId)->getCString()); + while(!query.eof()) + { + this->m_selectedPlayerId = query.getIntField("id"); + + if(query.getFloatField("mp") <= 0 || query.getFloatField("hp") <= 0) + this->m_enabledPlayerSkill = false; + + //数据处理部分 + this->m_skillList->removeAllObjects(); + + string wq = ""; + JsonBox::Value json; + json.loadFromString(query.getStringField("skill")); + JsonBox::Array jsonArr = json.getArray(); + for (int i = 0; i < jsonArr.size(); i++) + { + char* str = (char*)malloc(10 * sizeof(char)); + OzgCCUtility::itoa(jsonArr[i].getInt(), str); + wq.append(str); + + if(i + 1 < jsonArr.size()) + wq.append(", "); + + free(str); + } + if((int)wq.length() > 0) + { + CppSQLite3Query skillQuery = this->m_db->execQuery(CCString::createWithFormat(SKILL_QUERY, wq.c_str())->getCString()); + while(!skillQuery.eof()) + { + RPGSkill *skill = RPGSkill::create(); + skill->m_dataId = skillQuery.getIntField("id"); + skill->m_name = skillQuery.getStringField("name_cns"); + skill->m_MP = skillQuery.getIntField("mp"); + skill->m_skillAttack = skillQuery.getIntField("skill_attack"); + skill->m_type = skillQuery.getIntField("type"); + + this->m_skillList->addObject(skill); + + skillQuery.nextRow(); + } + skillQuery.finalize(); + } + + tableView->reloadData(); + + query.nextRow(); + } + query.finalize(); + +} + +void RPGMapSkillMenuLayer::onButton(cocos2d::CCObject *pSender, CCControlEvent event) +{ + SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav"); + + CCControlButton *skillBtn = (CCControlButton*)pSender; + for (int i = 0; i < this->m_skillList->count(); i++) + { + //判断选中道具 + RPGSkill *skillData = (RPGSkill*)this->m_skillList->objectAtIndex(i); + if(skillBtn->getTag() == skillData->m_dataId) + { + this->m_selectedSkill = skillData; + break; + } + } + + //因为动态获取地图的大小会导致了菜单层显示错位,所以定死了 + float width = 960; + float height = 640; + + //临时背景 + CCTMXTiledMap *mainBg = CCTMXTiledMap::create("map_menu3_style1.tmx"); + mainBg->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width / 2, CCDirector::sharedDirector()->getWinSize().height / 2)); + mainBg->setAnchorPoint(ccp(0.5, 0.5)); + mainBg->setTag(kRPGMapSceneLayerTagChoicePlayerMenuLayerBg); + this->getParent()->addChild(mainBg); + + CCString *title = CCString::createWithFormat(((CCString*)this->m_stringList->objectForKey("menu_skill_choice"))->getCString(), this->m_selectedSkill->m_name.c_str()); + RPGMapChoicePlayerMenuLayer *choicePlayer = RPGMapChoicePlayerMenuLayer::create(this->m_db, title, this, callfuncO_selector(RPGMapSkillMenuLayer::onChoicePlayer), width, height); + choicePlayer->setTag(kRPGMapSceneLayerTagChoicePlayerMenuLayer); + this->getParent()->addChild(choicePlayer); + + this->setVisible(false); +} + +void RPGMapSkillMenuLayer::onChoicePlayer(CCObject* pObject) +{ + SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav"); + + CCMenuItem *menuItem = (CCMenuItem*)pObject; + if(menuItem->getTag() == kRPGMapChoicePlayerMenuLayerTagMainMenuBack) + { + //按了退出 + this->getParent()->removeChildByTag(kRPGMapSceneLayerTagChoicePlayerMenuLayerBg, true); + this->getParent()->removeChildByTag(kRPGMapSceneLayerTagChoicePlayerMenuLayer, true); + this->setVisible(true); + } + else + { + + bool isSuccess = RPGResultsLogic::useSkillCure(this->m_db, this->m_selectedPlayerId, menuItem->getTag() - kRPGMapChoicePlayerMenuLayerTagMainMenuPlayer, this->m_selectedSkill->m_dataId); + if(!isSuccess) + { + CCLog("技能使用失败"); + CCSize winSize = CCDirector::sharedDirector()->getWinSize(); + RPGDialogLayer *dialog = RPGDialogLayer::create(((CCString*)this->m_stringList->objectForKey("menu_skill_fail"))->getCString(), ((CCString*)this->m_stringList->objectForKey("confirm_exit_ok"))->getCString(), kRPGMapSkillMenuLayerTagDialogOK, winSize.width, winSize.height, this, menu_selector(RPGMapSkillMenuLayer::onDialog)); + dialog->setTag(kRPGMapSkillMenuLayerTagDialog); + this->getParent()->addChild(dialog); + + } + else + { + CCLog("技能使用成功"); + this->getParent()->removeChildByTag(kRPGMapSceneLayerTagChoicePlayerMenuLayerBg, true); + this->getParent()->removeChildByTag(kRPGMapSceneLayerTagChoicePlayerMenuLayer, true); + this->setVisible(true); + + this->setPlayerSkill(this->m_selectedPlayerId); //刷新正在显示的技能数据 + } + } + +} + +void RPGMapSkillMenuLayer::onDialog(cocos2d::CCObject *pObject) +{ + this->getParent()->removeChildByTag(kRPGMapSkillMenuLayerTagDialog, true); + this->getParent()->removeChildByTag(kRPGMapSceneLayerTagChoicePlayerMenuLayerBg, true); + this->getParent()->removeChildByTag(kRPGMapSceneLayerTagChoicePlayerMenuLayer, true); + this->setVisible(true); } diff --git a/Classes/RPGMapSkillMenuLayer.h b/Classes/RPGMapSkillMenuLayer.h index 6cce218..a19ded8 100644 --- a/Classes/RPGMapSkillMenuLayer.h +++ b/Classes/RPGMapSkillMenuLayer.h @@ -15,6 +15,7 @@ #include "JsonBox.h" #include "RPGMapRoleSprite.h" #include "RPGBaseSceneLayer.h" +#include "RPGResultsLogic.h" USING_NS_CC; USING_NS_CC_EXT; @@ -23,19 +24,36 @@ enum RPGMapSkillMenuLayerTag { kRPGMapSkillMenuLayerTagMainMenu = 1, kRPGMapSkillMenuLayerTagMainMenuBack = 2, - kRPGMapSkillMenuLayerTagBg = 3 - + kRPGMapSkillMenuLayerTagBg = 3, + kRPGMapSkillMenuLayerTagItemListTable = 4, + kRPGMapSkillMenuLayerTagMainMenuPlayer = 100, + kRPGMapSkillMenuLayerTagDialogOK = 5, + kRPGMapSkillMenuLayerTagDialog = 86 }; -class RPGMapSkillMenuLayer : public CCLayerColor//, CCTableViewDelegate, CCTableViewDataSource +class RPGMapSkillMenuLayer : public CCLayerColor, CCTableViewDelegate, CCTableViewDataSource { private: CCDictionary* m_stringList; CppSQLite3DB* m_db; + CCArray* m_skillList; + + bool m_statusIsDefault; //是否为第一次进入状态界面,如果是的话就不播放效果音了 + + int m_selectedPlayerId; //选中上面的player的id + bool m_enabledPlayerSkill; //是否允许点击技能项,死亡状态、相关异常状态或MP为0时设置为false + RPGSkill* m_selectedSkill; //选中的技能 + void onMenu(cocos2d::CCObject *pObject); + void setPlayerSkill(int dataId); + + void onButton(CCObject* pSender, CCControlEvent event); //点击了items列表的其中一个后触发 + void onChoicePlayer(CCObject* pObject); //在player选择框中,选中一个player后触发 + void onDialog(cocos2d::CCObject *pObject); + public: RPGMapSkillMenuLayer(); @@ -44,6 +62,19 @@ public: bool init(CCDictionary* stringList, CppSQLite3DB* db, float width, float height); static RPGMapSkillMenuLayer* create(CCDictionary* stringList, CppSQLite3DB* db, float width, float height); + //CCTableViewDelegate继承自CCScrollViewDelegate + virtual void scrollViewDidScroll(CCScrollView* scrollView); + virtual void scrollViewDidZoom(CCScrollView* scrollView); + + //点击哪个cell + virtual void tableCellTouched(CCTableView* tableView, CCTableViewCell* cell); + //每个cell的size + virtual CCSize cellSizeForTable(CCTableView *tableView); + //生成cell + virtual CCTableViewCell* tableCellAtIndex(CCTableView *tableView, unsigned int idx); + //cell的数量 + virtual unsigned int numberOfCellsInTableView(CCTableView *tableView); + }; #endif /* defined(__OzgGameRPG__RPGMapSkillMenuLayer__) */ diff --git a/Classes/RPGMapStatusMenuLayer.cpp b/Classes/RPGMapStatusMenuLayer.cpp index 6a6134a..7367b37 100644 --- a/Classes/RPGMapStatusMenuLayer.cpp +++ b/Classes/RPGMapStatusMenuLayer.cpp @@ -11,12 +11,6 @@ #include "RPGMapSceneLayer.h" #include "OzgCCUtility.h" -//获取一个player的详细数据 -#define PLAYER_DETAIL_QUERY "select p.*, arms.name_cns as arms_name, armor.name_cns as armor_name from player as p left join items as arms on p.items_id_arms = arms.id left join items as armor on p.items_id_armor = armor.id where p.id = %i" - -//查询一个角色的技能 -#define SKILL_QUERY "select * from skill where id in(%s)" - RPGMapStatusMenuLayer::RPGMapStatusMenuLayer() { @@ -27,7 +21,7 @@ RPGMapStatusMenuLayer::~RPGMapStatusMenuLayer() this->m_stringList->release(); this->m_skillList->release(); -// CCLog("RPGMapStatusMenuLayer 释放"); + CCLog("RPGMapStatusMenuLayer 释放"); } bool RPGMapStatusMenuLayer::init(cocos2d::CCDictionary *stringList, CppSQLite3DB *db, float width, float height) @@ -70,14 +64,25 @@ bool RPGMapStatusMenuLayer::init(cocos2d::CCDictionary *stringList, CppSQLite3DB CppSQLite3Query query = this->m_db->execQuery(PLAYER_QUERY); while(!query.eof()) { - CCArray *frames = OzgCCUtility::createSpriteFrames(CCString::createWithFormat("%s_0.png", query.getStringField("tex_prefix"))->getCString(), 3, 4); + CCSprite *playerSprite = NULL; + if(query.getIntField("hp") <= 0) + { + //死亡 + CCArray *frames = OzgCCUtility::createSpriteFrames(CCString::createWithFormat("%s_2.png", query.getStringField("tex_prefix"))->getCString(), 3, 4); + playerSprite = CCSprite::createWithSpriteFrame((CCSpriteFrame*)frames->objectAtIndex(10)); + } + else + { + //正常 + CCArray *frames = OzgCCUtility::createSpriteFrames(CCString::createWithFormat("%s_0.png", query.getStringField("tex_prefix"))->getCString(), 3, 4); + playerSprite = CCSprite::createWithSpriteFrame((CCSpriteFrame*)frames->objectAtIndex(1)); + } - CCSprite *playerSprite = CCSprite::createWithSpriteFrame((CCSpriteFrame*)frames->objectAtIndex(1)); CCMenuItemSprite *player = (CCMenuItemSprite*)mainMenu->getChildByTag(kRPGMapStatusMenuLayerTagMainMenuPlayer + query.getIntField("id")); if(!player) { player = CCMenuItemSprite::create(playerSprite, playerSprite, this, menu_selector(RPGMapStatusMenuLayer::onMenu)); - player->cocos2d::CCNode::setPosition(ccp(playerX, 560)); + player->setPosition(ccp(playerX, 560)); player->setScale(2); player->setTag(kRPGMapStatusMenuLayerTagMainMenuPlayer + query.getIntField("id")); mainMenu->addChild(player); @@ -141,9 +146,9 @@ void RPGMapStatusMenuLayer::onMenu(cocos2d::CCObject *pObject) break; } - //player status if(menuItem->getTag() >= kRPGMapStatusMenuLayerTagMainMenuPlayer && menuItem->getTag() <= kRPGMapStatusMenuLayerTagMainMenuPlayer + 99) { +// CCLog("点击了上面4个player的其中一个"); CCMenu *mainMenu = (CCMenu*)this->getChildByTag(kRPGMapMenuLayerTagMainMenu); CppSQLite3Query query = this->m_db->execQuery(PLAYER_QUERY); @@ -230,8 +235,9 @@ void RPGMapStatusMenuLayer::setStatusPlayer(int dataId) RPGSkill *skill = RPGSkill::create(); skill->m_dataId = skillQuery.getIntField("id"); skill->m_name = skillQuery.getStringField("name_cns"); - skill->m_mp = skillQuery.getIntField("mp"); + skill->m_MP = skillQuery.getIntField("mp"); skill->m_skillAttack = skillQuery.getIntField("skill_attack"); + skill->m_type = skillQuery.getIntField("type"); this->m_skillList->addObject(skill); @@ -338,7 +344,7 @@ CCTableViewCell* RPGMapStatusMenuLayer::tableCellAtIndex(CCTableView *tableView, RPGSkill *skillData = (RPGSkill*)this->m_skillList->objectAtIndex(index); - CCLabelTTF *textLab = CCLabelTTF::create(CCString::createWithFormat("%s (%i)", skillData->m_name.c_str(), skillData->m_mp)->getCString(), "Arial", 20, CCSizeMake(200, 25), kCCTextAlignmentLeft); + CCLabelTTF *textLab = CCLabelTTF::create(CCString::createWithFormat("%s (%i)", skillData->m_name.c_str(), skillData->m_MP)->getCString(), "Arial", 20, CCSizeMake(200, 25), kCCTextAlignmentLeft); textLab->setPosition(ccp(x, 0)); cell->addChild(textLab); diff --git a/Classes/RPGResultsLogic.cpp b/Classes/RPGResultsLogic.cpp index 2bf1288..19012c5 100644 --- a/Classes/RPGResultsLogic.cpp +++ b/Classes/RPGResultsLogic.cpp @@ -8,15 +8,15 @@ #include "RPGResultsLogic.h" -//获取一个player的数据 -#define PLAYER_DETAIL_QUERY "select * from player where id = %i" - -//使用道具后player的数据更新 -#define ITEMS_USE_UPDATE "update player set %s = %i where id = %i" +//执行操作后player的数据更新 +#define PLAYER_UPDATE "update player set %s = %i where id = %i" //使用道具后现有道具的变化 #define SAVEDATA_ITEMS_UPDATE "update save_data set items = '%s' where id = 1" +//查询一个技能的明细 +#define SKILL_DETAIL_QUERY "select * from skill where id = %i" + void RPGResultsLogic::deductionsItems(CppSQLite3DB *db, int itemsId) { CppSQLite3Query query = db->execQuery(SAVEDATA_QUERY); @@ -104,7 +104,7 @@ bool RPGResultsLogic::useItems(CppSQLite3DB* db, int playerId, int itemsId) //使用道具 { - CCString *sql = CCString::createWithFormat(ITEMS_USE_UPDATE, field.c_str(), results, playerId); + CCString *sql = CCString::createWithFormat(PLAYER_UPDATE, field.c_str(), results, playerId); db->execDML(sql->getCString()); CCLog("%s", sql->getCString()); @@ -116,3 +116,79 @@ bool RPGResultsLogic::useItems(CppSQLite3DB* db, int playerId, int itemsId) CCLog("对player%d 使用了一个道具%d", playerId, itemsId); return true; } + +bool RPGResultsLogic::useSkillCure(CppSQLite3DB *db, int srcPlayerId, int targetPlayerId, int srcSkillId) +{ + RPGPlayer *srcPlayerData; + RPGSkill *srcSkillData; + + RPGPlayer *targetPlayerData; + + //查询使用技能的player + CppSQLite3Query srcPlayerQuery = db->execQuery(CCString::createWithFormat(PLAYER_DETAIL_QUERY, srcPlayerId)->getCString()); + while(!srcPlayerQuery.eof()) + { + srcPlayerData = RPGPlayer::create(); + srcPlayerData->m_dataId = srcPlayerQuery.getIntField("id"); + srcPlayerData->m_maxMP = srcPlayerQuery.getIntField("max_mp"); + srcPlayerData->m_MP = srcPlayerQuery.getIntField("mp"); + srcPlayerData->m_skillAttack = srcPlayerQuery.getFloatField("skill_attack"); + + srcPlayerQuery.nextRow(); + } + srcPlayerQuery.finalize(); + + //查询使用的技能 + CppSQLite3Query srcSkillQuery = db->execQuery(CCString::createWithFormat(SKILL_DETAIL_QUERY, srcSkillId)->getCString()); + while(!srcSkillQuery.eof()) + { + srcSkillData = RPGSkill::create(); + srcSkillData->m_dataId = srcSkillQuery.getIntField("id"); + srcSkillData->m_MP = srcSkillQuery.getIntField("mp"); + srcSkillData->m_name = srcSkillQuery.getStringField("name_cns"); + srcSkillData->m_skillAttack = srcSkillQuery.getFloatField("skill_attack"); + + srcSkillQuery.nextRow(); + } + srcSkillQuery.finalize(); + + //查询目标player + CppSQLite3Query targetPlayerQuery = db->execQuery(CCString::createWithFormat(PLAYER_DETAIL_QUERY, targetPlayerId)->getCString()); + while(!targetPlayerQuery.eof()) + { + targetPlayerData = RPGPlayer::create(); + targetPlayerData->m_dataId = targetPlayerQuery.getIntField("id"); + targetPlayerData->m_maxHP = targetPlayerQuery.getIntField("max_hp"); + targetPlayerData->m_HP = targetPlayerQuery.getIntField("hp"); + + targetPlayerQuery.nextRow(); + } + targetPlayerQuery.finalize(); + + //执行逻辑 + if(srcPlayerData && srcSkillData && targetPlayerData) + { + //计算player时候技能后的效果值 + int targetResults = RPGComputingResults::skillCureResults(srcPlayerData->m_skillAttack, srcSkillData->m_skillAttack); + targetPlayerData->m_HP += targetResults; + + CCLog("player %i 回复了 %i HP", targetPlayerId, targetResults); + + //超过HP最大值 + if(targetPlayerData->m_HP > targetPlayerData->m_maxHP) + targetPlayerData->m_HP = targetPlayerData->m_maxHP; + db->execDML(CCString::createWithFormat(PLAYER_UPDATE, "hp", targetPlayerData->m_HP, targetPlayerData->m_dataId)->getCString()); + + //扣减使用者的MP + srcPlayerData->m_MP -= srcSkillData->m_MP; + if(srcPlayerData->m_MP < 0) + srcPlayerData->m_MP = 0; + + CCLog("player %i 消耗了 %i MP", srcPlayerId, srcSkillData->m_MP); + + db->execDML(CCString::createWithFormat(PLAYER_UPDATE, "mp", srcPlayerData->m_MP, srcPlayerData->m_dataId)->getCString()); + + } + + return true; +} diff --git a/Classes/RPGResultsLogic.h b/Classes/RPGResultsLogic.h index 861e555..e4d0eeb 100644 --- a/Classes/RPGResultsLogic.h +++ b/Classes/RPGResultsLogic.h @@ -25,6 +25,8 @@ public: static void deductionsItems(CppSQLite3DB* db, int itemsId); //扣减道具数 static bool useItems(CppSQLite3DB* db, int playerId, int itemsId); //使用道具,返回成功或失败 + static bool useSkillCure(CppSQLite3DB* db, int srcPlayerId, int targetPlayerId, int srcSkillId); //使用回复技能 + }; #endif /* defined(__OzgGameRPG__RPGResultsLogic__) */ diff --git a/README.md b/README.md index 4bc5bc4..4f5c61b 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ ozg game — 单机版RPG 声音文件来自 http://www.66rpg.com/type.php?t=17 -目前只在iOS平台下进行测试,战斗画面的攻击、技能、道具,地图界面的技能、道具均未完成。 +目前只在iOS平台下进行测试,战斗画面的攻击、技能、道具,地图界面的装备均未完成。 每次更新数据库都需要把模拟器里面的数据库删除。 diff --git a/Resources/db.sys b/Resources/db.sys index 6c9cdcee26c0d6eb9581939305bac769c870dfb3..69d9cb6c8a41f158de7075bffaa2e352741a378a 100755 GIT binary patch delta 300 zcmZo@5NT)-nIJ9rgn@y93y3*^m=TC~Pt-AHd@?aXlyh~FU|Cp&U4`Ao#tDU+`HHxh z7^h8a)Y$A;lEui?s3FEKE-ud4q(Av+=>!2C1*MY8f>b31PrndXch{ii(6a5JWsDm; zxx`rN#p(~$chviUjM+HBikG#%zJtMfVxu{`38N5$E)(N)nR+I9M!D&>^-Lyma(Q`@ zQgR|9%q-EdT#3mg`9<)uKh(l)ASeh%u+m$7?|r1 zG1OlI+VdV_iwd6|9}^pcBqJl|)3yyy+jevC@G(O8&l^`iZ`r^J@-r{UWH8`o21_zN VojvdAl3p$jCWtWwe9IbG8UWZMS0n%c delta 274 zcmZo@5NT)-nIJ8AnSp_U3y3*^m=TC~P1G@FygV^Mlyi5HU|Cp&U4`Ao#tDU+`HHxh z7?(|K)Y$A;lEpZ2f&f>egc!THxHw}I|KzQu6PiQIwuhE6ZtUa|Wv&;kKUCjd?*r1f zae_B5W6H!vO?Fd8AqHJ0rs=ZvO!7<&Ez@o5nM`D>^YSF6N&Mpgz% yM#krjtDm=Q;DmXIfq|D9EdF%%yr)Zgxj1;4Al$YMPuq5L@IbT|@GWa#X#fB}FjFr8 diff --git a/Resources/scene_map_cns.plist b/Resources/scene_map_cns.plist index 263410e..eefbb0d 100755 --- a/Resources/scene_map_cns.plist +++ b/Resources/scene_map_cns.plist @@ -38,12 +38,16 @@ 退出 menu_skill 技能 + menu_skill_choice + 对谁使用[%s]技能呢? + menu_skill_fail + 技能使用失败 menu_status 状态 menu_items 道具 menu_items_choice - 对谁使用[%s]呢? + 对谁使用[%s]道具呢? menu_items_fail 道具使用失败 menu_equip diff --git a/proj.ios/OzgGameRPG.xcodeproj/project.xcworkspace/xcuserdata/ouzhigang.xcuserdatad/UserInterfaceState.xcuserstate b/proj.ios/OzgGameRPG.xcodeproj/project.xcworkspace/xcuserdata/ouzhigang.xcuserdatad/UserInterfaceState.xcuserstate index adfd5205ff8e7557ec76147905a999bc530d497a..659d37e0c8d45b9d92b7bfb283fa76182108cfad 100644 GIT binary patch delta 29853 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 z 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

r$*#J6UI*x1fIb4~Gl0GV=v#ov z0cHd+4Zt{nng8pV8o5Zk5se<>2kpu=|Ljo`*(^1j$YCbKCsYZ1^|ly%rNleMm+TqD zelEOLXyBLZ%iw4HV2p2+#LmHc_I>$NJ4s%(-4x#RbT;vn?=kTRF zH25Bg@iTm8Bf*F5Fvbr`%wK2i%;WFvVDY2U^_5vWtMF42eGNVY7-HGJCeD)QW!}x? zIe^}1CVv9xP5$W~C+nZ#yW=Eu;4OpOPvjMOqC5#cU34a|k=Mx^eCJ(O>S}=g2GH98 zy#qZ`hWj3}j~?e+3SdaPk{CfrPk^ESR?>%x zlawgn!#P1o;{GzWFO?!#k_<3qGnEQ3oIkVQ$u(WjkOAQPc%O#_HGmo@X&?Zm7R_jj z$k7KZSRIuwXvzZ^*-Q-q7$s^NE@&zQ@RhxPX)2}4Buy;9;K}rk5XOBEnnhGmFq^b1 zfxiziZXZ*vpr;OCCjZuBfRFBkfWpiG1~(6=r+{Y;u@Mug$)9{P1z;BKdKv{iO#rj} zx1O2QEJ;rXfWiId4qQ5;{N_<#$-G;r`P2e{*#OM8g<4200+>C(-2Rm`C@D8!T3&TH zvMniKc6{>TF6?S*tuUT70CQ-j)&a~>a7w?8f)Sel=45cY0DmTtNPQn z+QVBN@k($xC;Zff+DGlrN=S)q$FxufWCfoyB&kEx;T*;+wnuba>Chgfx+?hNk;=GI zU2bJTX~}Zx2=yaB`$!mjj5;BV;W)tDo2iok^AN_6epVR6Ie>Y7X$&i=U)s&I1DMw* zGcQwnSUJqPF6}Gf8g)ZZejQ-&?@fUD@R>h4cDPHy+NOoNN8JaQAHe)us0Y+TfCT_7 zke~nK8RzHJOPTj_>QCw~>IJ}p0Tu$V(B;%C>NWK@z`_8Q01b)(2ig2qT1Lxh zghm0@31E=`iw0P4gIAjcv=Oa_x@aYh(<*?41FSQ^x-6#&T0@fn>k6=L0E;kq3qOMx zaZJk(IacFBo6%NZ!gQdmX&5No0S1?258mjwT_o*DyM9U3jdrI!02Tu^l6V95d@ z{Gum^ae$E#sjDm)S-{sEGv)J7P1eUjqvGj={_vMNl?BE5@cGBPy1fhbjRRO;$-*SM zuVhSq3!Nk@C}kK~s;m^oWUg$q%ntsol-VT^DZONVGGAFIS)k0Hd62Fv)sdg|&*FCp8TFKd(}lX=tfF!G?c&j&Dh{ zrJthqXYugWg+aQqvi4|brN5DRe@(BTSJJEKuj$qF8hR}aa}gX^DZt7A28Ue^unK@x z0<7w5dOf{?-YD~uQS?fgqs$9nBLOxFDBuI-E(W-UN(~I8HlO(^T&~|oAD4NrruWka z=!5hj`Y?Tj{*gXP9|IT+snGzd0az`->Hr2kR}U~fzznPD6Hu!&eVRT)pOtyh=jopS z1`Ldl#BTxYcc2h&>%&R?|Wv+@4Z;9&w>J}xr5_!2j>^HJKzTWK(O*AeT%+L|3=@T@6z|^`}FSs8w)TP zy5j*h0bmmWHVI&p0S32=sjKOS^drGeXz5e>8U0-52(Si#EfowEOx*{tp8@s@y!6g2 z${k%=Rhe3zpP$34?#*$6W(qd;$RAuabZEY4`A_r*M#jix1cS(O7>rTyXa4Bph%Ge8 z0M-bwB^MbbgTq!8qh<&wfiRT9f}!OGzU$M34%k9~Ee2TA1%_ofC}qr;Fs6(dW6oIc zCJ$0cY#zX-1MDk+O*2&URS!Y}7;9P6a>jUmx$Bjt%q023&K%XB`#78qpz4sy1wt57D4-*ChXcGZc0 z{LlttI>Yx^sYhNI(^Xag3D1asxrT{=&Y|Q6S&rNQFt`|?V+_)-4Vh@TBQY5CCmg7- z2{N%v?;OSzhK8di0Y2qyVfx4l+8Ct3kfh?_J7Bw?xnfKr>~Qxpm-dR8>B|VE5t9tC zWz9?~z?%8}_xz%nbS6_^X8^3FnSmK-xxqU%KDVHxE!vnIMknKzGlQ611}2MEfUN-7 z%H>R+%$b2z(JCQ$_VA(ib-7HDU~nIBGjoL7;n=srIStzku(j46q#l z+u9zDdNHRn%|bY~Fv}U}kM9At4PZZf7LHO3O7ZkD%%sb2gz(z_{}EpB)m|8R@wsK< zz500gGuXJ?(fQ@!ojQp>_l?RgDvGQW3nI6uD3~FN^7|F!kFxU+TLsd~uBxP>U}#Bx zo?SsnrCmW@HQ)Rw$bt!wa`Aj=AUlLPgD&37KY3&y&g^A`d&tZ_WnP9y3n>b{b%3T9~KIGk~21*g5{Pxns~r zI~^lHwOE+6oAsJ`^M8wU{?Tk{iDIGC2RffZdn@^mcUm5c8wqY zhqaz{WL^G`fGg_;up0ooX@ENi4L63*GqPhuhE#C1+tZQt`RG8_7ht#Bjtp#oU{N3o zf295!fbY<^7mjQw8~&+7xB}0#u$@`BcJ2V|t|2$cF=CYO=Z<5$v(caA+r(k<2gUEh zr4~_Y_b=%_EX+Qu*f=(xO<)t*B(^ULGtmQp!8-U6z#an(&fFgWd%B8EWz$$~Kej)c z&StQg0DA@$EKqPj;Q$n_K;Z)vk-Yr6HP8QiRL|zIr84g|Y(6`L9m)=43)taoAzQ>2 zvn2p~4zND~_7}ilQT-BNuK@NMV6dS62Vig3uw^o5ww$eCE7>ae7e1U~;ST>+$Y&pb zLJbrIP>>>_7E*|U7D`BO==JWomAYXu@caTdZNB7Jig&)uZhrQQnOyF~=lp8w7FAkQ zlv`GjpVzazw5qJ4eLg0#lVw~p3-{!A&FmC_z2~o8>!4?w*lBHX#Lkov>@1dNXR~uY z{u&(qfN=quwv#qe_6|x+575jB&LJG_#DV3#V z74U!+Sp+kPaEyXGlS08@;ugcMVb^{^T?@Mo?l`_zO&E4PyMf&Zb#7w6WjC|m@fla_ zL)8pWD1icpq3a!2r7OtG?FmnVdHHG5S%CeX-3AR3>}g@YZ~KM;yPe&^yI-?bEN6GJ zyLi`YLHcv-Ubq(<*nQA5$+;y%^P@_uN-BXuBbj!9JqSl2=0*6GgBJFXtl+cjbE1!r zu(N@Jf}U)5<8eb>QoG)hK*30=PP1p=2M9hMPb8g6_#FlIEPIY0aoL_He{n2mcm4(T zIxNcAi|i%#XZ9ENSN1Y{g}usN0}5lHFaZivpfCdpbD*#Q3QM4{0*VgsDI$B5y~V

P3+xf5w^KLz$1_MfgyYO%*5-^k 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 z