增加道具店,旅馆

This commit is contained in:
ozg
2014-06-10 00:04:02 +08:00
parent be6e11ebb1
commit 4814dff441
59 changed files with 984 additions and 77 deletions
+5
View File
@@ -28,8 +28,13 @@
#define MAX_GOLD 999999 //金钱最大值
#define MAX_STATUS1 9999 //HP最大值
#define MAX_STATUS2 999 //MP、攻击力、防御力、速度、技能攻击、技能防御的最大值
#define MAX_ITEMS_TOTAL 99 //最大物品数
#define GAME_BG_AUDIO_VOLUME "GAME_BG_AUDIO_VOLUME" //背景音乐大小
#define GAME_EFFECT_AUDIO_VOLUME "GAME_EFFECT_AUDIO_VOLUME" //效果音大小
#define GAME_MAPSHOP_NPC_ID 7 //商店NPC的id
#define GAME_MAPINN_NPC_ID 8 //旅馆NPC的id
#define GAME_INN 100 //住宿一次花费多少钱
#endif
+1
View File
@@ -131,6 +131,7 @@ public:
float m_speed;
float m_skillAttack;
float m_skillDefense;
string m_description;
RPGItems();
virtual ~RPGItems();
+684 -8
View File
@@ -9,6 +9,26 @@
#include "RPGMapDialogLayer.h"
#include "RPGMapSceneLayer.h"
#define INN_UPDATE "update player set hp = max_hp, mp = max_mp where id = %i" //住宿时,回复数值时使用
#define ITEMS_QUERY1 "select * from items order by id asc, type desc"
#define ITEMS_QUERY2 "select * from items where type = 1 order by id asc, type desc"
#define ITEMS_QUERY3 "select * from items where type = 2 order by id asc, type desc"
#define ITEMS_QUERY4 "select * from items where type = 3 order by id asc, type desc"
#define ITEMS_EXISTING_QUERY1 "select i.*, ie.total from items_existing as ie inner join items as i on ie.id = i.id order by i.id asc"
#define ITEMS_EXISTING_QUERY2 "select i.*, ie.total from items_existing as ie inner join items as i on ie.id = i.id where i.type = 1 order by i.id asc"
#define ITEMS_EXISTING_QUERY3 "select i.*, ie.total from items_existing as ie inner join items as i on ie.id = i.id where i.type = 2 order by i.id asc"
#define ITEMS_EXISTING_QUERY4 "select i.*, ie.total from items_existing as ie inner join items as i on ie.id = i.id where i.type = 3 order by i.id asc"
#define CHECK_ITEMS "select count(id) from items_existing where id = %i"
#define ITEMS_BUY_ADD "insert into items_existing (id, total) values(%i, 1)"
#define ITEMS_BUY_UPDATE "update items_existing set total = total + 1 where id = %i"
#define ITEMS_SELL_ALL "delete from items_existing where id = %i"
#define ITEMS_SELL_UPDATE "update items_existing set total = total - 1 where id = %i"
RPGMapDialogLayer::RPGMapDialogLayer()
{
@@ -16,19 +36,31 @@ RPGMapDialogLayer::RPGMapDialogLayer()
RPGMapDialogLayer::~RPGMapDialogLayer()
{
this->m_stringList->release();
this->m_npc->startAutoMove(); //继续执行自动移动
this->m_npc->release();
// CCLog("RPGMapDialogLayer 释放");
this->m_shopData->release();
CCLog("RPGMapDialogLayer 释放");
}
bool RPGMapDialogLayer::init(RPGMapNPCRoleSprite* npc)
bool RPGMapDialogLayer::init(CCDictionary *stringList, CppSQLite3DB* db, RPGMapNPCRoleSprite* npc)
{
if(CCLayer::init())
{
this->m_stringList = stringList;
this->m_stringList->retain();
this->m_db = db;
this->m_npc = npc;
this->m_npc->retain();
this->m_shopData = new CCArray();
this->m_shopData->init();
CCTMXTiledMap *mainBg = CCTMXTiledMap::create(CCString::createWithFormat("dialog_%s.tmx", CCUserDefault::sharedUserDefault()->getStringForKey(GAME_STYLE).c_str())->getCString());
float x = (CCDirector::sharedDirector()->getWinSize().width - mainBg->getContentSize().width) / 2.0f;
float y = 40;
@@ -36,13 +68,28 @@ bool RPGMapDialogLayer::init(RPGMapNPCRoleSprite* npc)
this->addChild(mainBg);
string text = " ";
text.append(npc->m_content->getCString());
text.append(this->m_npc->m_content->getCString());
CCLabelTTF *contentLab = CCLabelTTF::create(text.c_str(), "Arial", 25, CCSizeMake(mainBg->getContentSize().width - 20.0f, mainBg->getContentSize().height - 40.0f), kCCTextAlignmentLeft, kCCVerticalTextAlignmentTop);
contentLab->setPosition(ccp(mainBg->getContentSize().width / 2.0f + 35.0f, 125));
contentLab->setTag(kRPGMapDialogLayerTagContentLab);
this->addChild(contentLab);
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);
if(this->m_npc->m_dataId == GAME_MAPSHOP_NPC_ID || this->m_npc->m_dataId == GAME_MAPINN_NPC_ID)
{
//特定NPC对话后出现的选择
//背景层
CCLayerColor *bgMask = CCLayerColor::create(ccc4(0, 0, 0, 200));
bgMask->setTag(kRPGMapDialogLayerTagBgMask);
this->addChild(bgMask, 0);
this->reorderChild(mainBg, 1);
this->reorderChild(contentLab, 2);
this->showShopDefault();
}
else
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 1, true);
return true;
}
@@ -50,10 +97,10 @@ bool RPGMapDialogLayer::init(RPGMapNPCRoleSprite* npc)
return false;
}
RPGMapDialogLayer* RPGMapDialogLayer::create(RPGMapNPCRoleSprite* npc)
RPGMapDialogLayer* RPGMapDialogLayer::create(CCDictionary *stringList, CppSQLite3DB* db, RPGMapNPCRoleSprite* npc)
{
RPGMapDialogLayer *layer = new RPGMapDialogLayer();
if(layer && layer->init(npc))
if(layer && layer->init(stringList, db, npc))
{
layer->autorelease();
@@ -74,6 +121,308 @@ void RPGMapDialogLayer::ccTouchMoved(cocos2d::CCTouch *pTouch, cocos2d::CCEvent
}
void RPGMapDialogLayer::ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
this->cancelScene();
}
//CCTableView
void RPGMapDialogLayer::scrollViewDidScroll(cocos2d::extension::CCScrollView *scrollView)
{
}
void RPGMapDialogLayer::scrollViewDidZoom(cocos2d::extension::CCScrollView *scrollView)
{
}
void RPGMapDialogLayer::tableCellTouched(cocos2d::extension::CCTableView *tableView, cocos2d::extension::CCTableViewCell *cell)
{
}
CCSize RPGMapDialogLayer::cellSizeForTable(cocos2d::extension::CCTableView *tableView)
{
return CCSizeMake(tableView->getContentSize().width, 80);
}
CCTableViewCell* RPGMapDialogLayer::tableCellAtIndex(cocos2d::extension::CCTableView *tableView, unsigned int idx)
{
CCTableViewCell *cell = tableView->dequeueCell();
if (!cell)
{
cell = new CCTableViewCell();
cell->autorelease();
}
else
cell->removeAllChildrenWithCleanup(true);
RPGItems *items = (RPGItems*)this->m_shopData->objectAtIndex(idx);
//类别
string typeName;
switch (items->m_type)
{
case 1:
typeName = ((CCString*)this->m_stringList->objectForKey("npc_shop_category_arms"))->getCString();
break;
case 2:
typeName = ((CCString*)this->m_stringList->objectForKey("npc_shop_category_armor"))->getCString();
break;
case 3:
typeName = ((CCString*)this->m_stringList->objectForKey("npc_shop_category_items"))->getCString();
break;
default:
break;
}
CCLabelTTF *typeLab = CCLabelTTF::create(typeName.c_str(), "FZCuYuan-M03S", 20, CCSizeMake(120, 40), kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter);
typeLab->setPosition(ccp(400, 0));
typeLab->setFontFillColor(ccc3(144, 144, 144));
cell->addChild(typeLab);
if(this->m_shopMode == kRPGMapDialogLayerShopModeBuy)
{
//买入
//名称
CCControlButton *nameBtn = CCControlButton::create(CCString::createWithFormat("%s %i", items->m_name.c_str(), (int)items->m_buy)->getCString(), "FZCuYuan-M03S", 20);
nameBtn->setPosition(ccp(150, 0));
nameBtn->setTag(items->m_dataId);
nameBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(RPGMapDialogLayer::onButtonItemsName), CCControlEventTouchUpInside);
cell->addChild(nameBtn);
//买入按钮
CCControlButton *itemsBtn = CCControlButton::create(((CCString*)this->m_stringList->objectForKey("npc_dialog_buy"))->getCString(), "FZCuYuan-M03S", 20);
itemsBtn->setPosition(ccp(550, 0));
itemsBtn->setTag(items->m_dataId);
itemsBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(RPGMapDialogLayer::onButtonItems), CCControlEventTouchUpInside);
cell->addChild(itemsBtn);
}
else if(this->m_shopMode == kRPGMapDialogLayerShopModeSell)
{
//卖出
//名称
CCControlButton *nameBtn = CCControlButton::create(CCString::createWithFormat("%s %i", items->m_name.c_str(), (int)items->m_sell)->getCString(), "FZCuYuan-M03S", 20);
nameBtn->setPosition(ccp(150, 0));
nameBtn->setTag(items->m_dataId);
nameBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(RPGMapDialogLayer::onButtonItemsName), CCControlEventTouchUpInside);
cell->addChild(nameBtn);
typeLab->setPosition(ccp(350, 0));
//卖出按钮
CCControlButton *itemsBtn = CCControlButton::create(CCString::createWithFormat("%s(剩余%i个)", ((CCString*)this->m_stringList->objectForKey("npc_dialog_sell"))->getCString(), ((RPGExistingItems*)items)->m_total)->getCString(), "FZCuYuan-M03S", 20);
itemsBtn->setPosition(ccp(520, 0));
itemsBtn->setTag(items->m_dataId);
itemsBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(RPGMapDialogLayer::onButtonItems), CCControlEventTouchUpInside);
cell->addChild(itemsBtn);
}
return cell;
}
unsigned int RPGMapDialogLayer::numberOfCellsInTableView(cocos2d::extension::CCTableView *tableView)
{
return this->m_shopData->count();
}
//CCTableView end
//private
void RPGMapDialogLayer::onButton(cocos2d::CCObject *pSender, CCControlEvent event)
{
SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav", false);
CCControlButton *btn = (CCControlButton*)pSender;
switch (btn->getTag())
{
case kRPGMapDialogLayerTagBtnBuy:
this->buy(); //买入
break;
case kRPGMapDialogLayerTagBtnSell:
this->sell(); //卖出
break;
case kRPGMapDialogLayerTagBtnInn:
this->inn(); //住宿
break;
case kRPGMapDialogLayerTagBtnCancel:
this->cancelScene(); //点击了取消
break;
default:
break;
}
}
void RPGMapDialogLayer::onButtonItemsName(cocos2d::CCObject *pSender, CCControlEvent event)
{
SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav", false);
CCControlButton *nameBtn = (CCControlButton*)pSender;
CCObject *obj;
CCARRAY_FOREACH(this->m_shopData, obj)
{
RPGItems *item = (RPGItems*)obj;
if(nameBtn->getTag() == item->m_dataId)
{
CCTMXTiledMap *alertDialogRight = (CCTMXTiledMap*)this->getChildByTag(kRPGMapDialogLayerTagAlertDialogRight);
//更新物品描述
CCLabelTTF *descriptionLab = (CCLabelTTF*)alertDialogRight->getChildByTag(kRPGMapDialogLayerTagAlertDialogRightDescription);
descriptionLab->setString(item->m_description.c_str());
break;
}
}
}
void RPGMapDialogLayer::onButtonItems(cocos2d::CCObject *pSender, CCControlEvent event)
{
SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav", false);
CCControlButton *itemsBtn = (CCControlButton*)pSender;
CCObject *obj;
CCARRAY_FOREACH(this->m_shopData, obj)
{
RPGItems *item = (RPGItems*)obj;
if(itemsBtn->getTag() == item->m_dataId)
{
CCLabelTTF *contentLab = (CCLabelTTF*)this->getChildByTag(kRPGMapDialogLayerTagContentLab);
RPGSaveData *saveDataObj = loadSaveData(this->m_db);
if(this->m_shopMode == kRPGMapDialogLayerShopModeBuy)
{
//买入
//判断金钱,扣减金钱
if(saveDataObj->m_gold < (int)item->m_buy)
{
//金钱不够
contentLab->setString(CCString::createWithFormat(" %s", ((CCString*)this->m_stringList->objectForKey("npc_dialog_buy_msg2"))->getCString())->getCString());
return;
}
CCString *sql = CCString::createWithFormat(CHECK_ITEMS, item->m_dataId);
int total = this->m_db->execScalar(sql->getCString());
//越过了界限
if(total == MAX_ITEMS_TOTAL)
{
contentLab->setString(CCString::createWithFormat(" %s", ((CCString*)this->m_stringList->objectForKey("npc_dialog_buy_msg4"))->getCString())->getCString());
return;
}
saveDataObj->m_gold -= (int)item->m_buy;
saveData(this->m_db, saveDataObj);
//更新右上角的金钱
CCTMXTiledMap *alertDialogRight = (CCTMXTiledMap*)this->getChildByTag(kRPGMapDialogLayerTagAlertDialogRight);
CCLabelTTF *goldLab = (CCLabelTTF*)alertDialogRight->getChildByTag(kRPGMapDialogLayerTagAlertDialogRightGold);
goldLab->setString(CCString::createWithFormat("%s%i", ((CCString*)this->m_stringList->objectForKey("menu_gold"))->getCString(), saveDataObj->m_gold)->getCString());
if(total == 0)
//原来没有这个物品的话就新增
this->m_db->execDML(CCString::createWithFormat(ITEMS_BUY_ADD, item->m_dataId)->getCString());
else
//对于已有物品就加1
this->m_db->execDML(CCString::createWithFormat(ITEMS_BUY_UPDATE, item->m_dataId)->getCString());
//更新下面的对话框
contentLab->setString(CCString::createWithFormat(" %s", ((CCString*)this->m_stringList->objectForKey("npc_dialog_buy_msg3"))->getCString())->getCString());
}
else if(this->m_shopMode == kRPGMapDialogLayerShopModeSell)
{
//卖出
saveDataObj->m_gold += (int)item->m_sell;
saveData(this->m_db, saveDataObj);
//更新右上角的金钱
CCTMXTiledMap *alertDialogRight = (CCTMXTiledMap*)this->getChildByTag(kRPGMapDialogLayerTagAlertDialogRight);
CCLabelTTF *goldLab = (CCLabelTTF*)alertDialogRight->getChildByTag(kRPGMapDialogLayerTagAlertDialogRightGold);
goldLab->setString(CCString::createWithFormat("%s%i", ((CCString*)this->m_stringList->objectForKey("menu_gold"))->getCString(), saveDataObj->m_gold)->getCString());
((RPGExistingItems*)item)->m_total--;
if(((RPGExistingItems*)item)->m_total == 0)
{
this->m_shopData->removeObject(item);
//卖到没有了的话就删除
this->m_db->execDML(CCString::createWithFormat(ITEMS_SELL_ALL, item->m_dataId)->getCString());
}
else
//对于已有物品就减1
this->m_db->execDML(CCString::createWithFormat(ITEMS_SELL_UPDATE, item->m_dataId)->getCString());
CCTMXTiledMap *alertDialog = (CCTMXTiledMap*)this->getChildByTag(kRPGMapDialogLayerTagAlertDialog);
CCTableView *tableView = (CCTableView*)alertDialog->getChildByTag(kRPGMapDialogLayerTagAlertDialogTable);
float x = tableView->getContentOffset().x;
float y = tableView->getContentOffset().y;
tableView->reloadData();
tableView->setContentOffset(ccp(x, y));
//更新下面的对话框
contentLab->setString(CCString::createWithFormat(" %s", ((CCString*)this->m_stringList->objectForKey("npc_dialog_sell_msg2"))->getCString())->getCString());
}
break;
}
}
}
void RPGMapDialogLayer::onMenu(cocos2d::CCObject *pObject)
{
SimpleAudioEngine::sharedEngine()->playEffect("audio_effect_btn.wav", false);
CCMenuItem *menuItem = (CCMenuItem*)pObject;
switch (menuItem->getTag())
{
case kRPGMapDialogLayerTagShopMenuItems:
this->showShopList((RPGMapDialogLayerTag)menuItem->getTag()); //道具
break;
case kRPGMapDialogLayerTagShopMenuArms:
this->showShopList((RPGMapDialogLayerTag)menuItem->getTag()); //武器
break;
case kRPGMapDialogLayerTagShopMenuArmor:
this->showShopList((RPGMapDialogLayerTag)menuItem->getTag()); //防具
break;
case kRPGMapDialogLayerTagShopMenuAll:
this->showShopList((RPGMapDialogLayerTag)menuItem->getTag()); //全部
break;
case kRPGMapDialogLayerTagShopMenuCancel:
{
//取消回到默认状态
this->removeChildByTag(kRPGMapDialogLayerTagShopMenu, true);
this->removeChildByTag(kRPGMapDialogLayerTagAlertDialog, true);
this->removeChildByTag(kRPGMapDialogLayerTagAlertDialogRight, true);
this->showShopDefault();
}
break;
default:
break;
}
}
void RPGMapDialogLayer::cancelScene()
{
CCTMXTiledMap *bgMap = (CCTMXTiledMap*)this->getParent()->getChildByTag(kRPGMapSceneLayerTagBgMap);
@@ -81,5 +430,332 @@ void RPGMapDialogLayer::ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent
mainMenu->setVisible(true);
CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
((RPGMapSceneLayer*)this->getParent())->enabledControl(true);
this->removeFromParentAndCleanup(true);
}
void RPGMapDialogLayer::inn()
{
//判断金钱,扣减金钱
RPGSaveData *saveDataObj = loadSaveData(this->m_db);
if(saveDataObj->m_gold < GAME_INN)
{
//金钱不够
CCLabelTTF *contentLab = (CCLabelTTF*)this->getChildByTag(kRPGMapDialogLayerTagContentLab);
contentLab->setString(CCString::createWithFormat(" %s", ((CCString*)this->m_stringList->objectForKey("npc_dialog_inn_msg"))->getCString())->getCString());
return;
}
//播放住宿的声音
SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
SimpleAudioEngine::sharedEngine()->playEffect("audio_inn.mp3", false);
saveDataObj->m_gold -= GAME_INN;
saveData(this->m_db, saveDataObj);
//回复状态
CCArray *sqlList = CCArray::create(); //需要执行的sql
CppSQLite3Query query = this->m_db->execQuery(PLAYER_QUERY);
while(!query.eof())
{
CCString *sql = CCString::createWithFormat(INN_UPDATE, query.getIntField("id"));
sqlList->addObject(sql);
query.nextRow();
}
query.finalize();
//统一执行需要变动的数据
CCObject *obj = NULL;
CCARRAY_FOREACH(sqlList, obj)
{
CCString *sql = (CCString*)obj;
this->m_db->execDML(sql->getCString());
}
this->removeAllChildrenWithCleanup(true);
CCLayerColor *bgMask = CCLayerColor::create(ccc4(0, 0, 0, 0));
bgMask->setTag(kRPGMapDialogLayerTagBgMask);
this->addChild(bgMask);
CCFadeIn *act1 = CCFadeIn::create(0.5);
CCActionInterval *act2 = act1->reverse();
bgMask->runAction(CCSequence::create(act1, CCDelayTime::create(4.0), act2, CCCallFunc::create(this, callfunc_selector(RPGMapDialogLayer::innEnd)), NULL));
}
void RPGMapDialogLayer::innEnd()
{
SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
this->cancelScene();
}
void RPGMapDialogLayer::buy()
{
this->m_shopMode = kRPGMapDialogLayerShopModeBuy;
this->shopCommon();
CCLabelTTF *contentLab = (CCLabelTTF*)this->getChildByTag(kRPGMapDialogLayerTagContentLab);
contentLab->setString(CCString::createWithFormat(" %s", ((CCString*)this->m_stringList->objectForKey("npc_dialog_buy_msg"))->getCString())->getCString());
}
void RPGMapDialogLayer::sell()
{
this->m_shopMode = kRPGMapDialogLayerShopModeSell;
this->shopCommon();
CCLabelTTF *contentLab = (CCLabelTTF*)this->getChildByTag(kRPGMapDialogLayerTagContentLab);
contentLab->setString(CCString::createWithFormat(" %s", ((CCString*)this->m_stringList->objectForKey("npc_dialog_sell_msg"))->getCString())->getCString());
}
void RPGMapDialogLayer::shopCommon()
{
//更换对话框
this->removeChildByTag(kRPGMapDialogLayerTagAlertDialog, true);
CCTMXTiledMap *alertDialog = CCTMXTiledMap::create(CCString::createWithFormat("shop_list_%s.tmx", CCUserDefault::sharedUserDefault()->getStringForKey(GAME_STYLE).c_str())->getCString());
alertDialog->setPosition(ccp(110, 210));
alertDialog->setTag(kRPGMapDialogLayerTagAlertDialog);
this->addChild(alertDialog);
//右边的框
CCTMXTiledMap *alertDialogRight = CCTMXTiledMap::create(CCString::createWithFormat("shop_menu_%s.tmx", CCUserDefault::sharedUserDefault()->getStringForKey(GAME_STYLE).c_str())->getCString());
alertDialogRight->setPosition(ccp(760, 210));
alertDialogRight->setTag(kRPGMapDialogLayerTagAlertDialogRight);
this->addChild(alertDialogRight);
RPGSaveData *saveDataObj = loadSaveData(this->m_db);
addLab(alertDialogRight, kRPGMapDialogLayerTagAlertDialogRightGold, CCString::createWithFormat("%s%i", ((CCString*)this->m_stringList->objectForKey("menu_gold"))->getCString(), saveDataObj->m_gold), 18, kCCTextAlignmentLeft, ccp(225, 373));
//物品描述
CCLabelTTF *descriptionLab = CCLabelTTF::create("", "Arial", 20, CCSizeMake(alertDialogRight->getContentSize().width - 35, alertDialogRight->getContentSize().height - 120), kCCTextAlignmentLeft, kCCVerticalTextAlignmentTop);
descriptionLab->setPosition(ccp(105, 160));
descriptionLab->setTag(kRPGMapDialogLayerTagAlertDialogRightDescription);
alertDialogRight->addChild(descriptionLab);
//右边的框 end
CCMenu *shopMenu = CCMenu::create();
shopMenu->setPosition(CCPointZero);
shopMenu->setAnchorPoint(CCPointZero);
shopMenu->setTag(kRPGMapDialogLayerTagShopMenu);
this->addChild(shopMenu);
//上面的4个分类按钮
//全部
CCLabelTTF *shopMenuAllLab = CCLabelTTF::create(((CCString*)this->m_stringList->objectForKey("npc_shop_category_all"))->getCString(), "Arial", 25);
CCMenuItemLabel *shopMenuAll = CCMenuItemLabel::create(shopMenuAllLab, this, menu_selector(RPGMapDialogLayer::onMenu));
shopMenuAll->setPosition(ccp(180, 585));
shopMenuAll->setTag(kRPGMapDialogLayerTagShopMenuAll);
shopMenu->addChild(shopMenuAll);
//道具
CCLabelTTF *shopMenuItemsLab = CCLabelTTF::create(((CCString*)this->m_stringList->objectForKey("npc_shop_category_items"))->getCString(), "Arial", 25);
CCMenuItemLabel *shopMenuItems = CCMenuItemLabel::create(shopMenuItemsLab, this, menu_selector(RPGMapDialogLayer::onMenu));
shopMenuItems->setPosition(ccp(347, 585));
shopMenuItems->setTag(kRPGMapDialogLayerTagShopMenuItems);
shopMenu->addChild(shopMenuItems);
//武器
CCLabelTTF *shopMenuArmsLab = CCLabelTTF::create(((CCString*)this->m_stringList->objectForKey("npc_shop_category_arms"))->getCString(), "Arial", 25);
CCMenuItemLabel *shopMenuArms = CCMenuItemLabel::create(shopMenuArmsLab, this, menu_selector(RPGMapDialogLayer::onMenu));
shopMenuArms->setPosition(ccp(514, 585));
shopMenuArms->setTag(kRPGMapDialogLayerTagShopMenuArms);
shopMenu->addChild(shopMenuArms);
//防具
CCLabelTTF *shopMenuArmorLab = CCLabelTTF::create(((CCString*)this->m_stringList->objectForKey("npc_shop_category_armor"))->getCString(), "Arial", 25);
CCMenuItemLabel *shopMenuArmor = CCMenuItemLabel::create(shopMenuArmorLab, this, menu_selector(RPGMapDialogLayer::onMenu));
shopMenuArmor->setPosition(ccp(681, 585));
shopMenuArmor->setTag(kRPGMapDialogLayerTagShopMenuArmor);
shopMenu->addChild(shopMenuArmor);
//上面的4个分类按钮 end
//返回按钮
CCMenuItemSprite *menuCancel = CCMenuItemSprite::create(CCSprite::createWithSpriteFrameName("commons_btn_back_04.png"), CCSprite::createWithSpriteFrameName("commons_btn_back_04.png"), this, menu_selector(RPGMapDialogLayer::onMenu));
menuCancel->setPosition(ccp(40, 600));
menuCancel->setTag(kRPGMapDialogLayerTagShopMenuCancel);
menuCancel->setScale(0.5);
shopMenu->addChild(menuCancel);
//物品列表
this->showShopList(kRPGMapDialogLayerTagShopMenuAll);
}
void RPGMapDialogLayer::showShopList(RPGMapDialogLayerTag tag)
{
CCMenu *shopMenu = (CCMenu*)this->getChildByTag(kRPGMapDialogLayerTagShopMenu);
CCObject *obj = NULL;
CCARRAY_FOREACH(shopMenu->getChildren(), obj)
{
CCMenuItem *itemMenu = (CCMenuItem*)obj;
if(itemMenu->getTag() == tag)
itemMenu->setEnabled(false);
else
itemMenu->setEnabled(true);
}
this->m_shopData->removeAllObjects();
if(this->m_shopMode == kRPGMapDialogLayerShopModeBuy)
{
//买入
string sql;
switch (tag)
{
case kRPGMapDialogLayerTagShopMenuItems:
sql = ITEMS_QUERY4;
break;
case kRPGMapDialogLayerTagShopMenuArmor:
sql = ITEMS_QUERY3;
break;
case kRPGMapDialogLayerTagShopMenuArms:
sql = ITEMS_QUERY2;
break;
default:
sql = ITEMS_QUERY1;
break;
}
CppSQLite3Query query = this->m_db->execQuery(sql.c_str());
while(!query.eof())
{
RPGItems *items = RPGItems::create();
items->m_dataId = query.getIntField("id");
items->m_name = query.getStringField("name_cns");
items->m_buy = query.getFloatField("buy");
items->m_sell = query.getFloatField("sell");
items->m_type = query.getIntField("type");
items->m_attack = query.getFloatField("attack");
items->m_defense = query.getFloatField("defense");
items->m_speed = query.getFloatField("speed");
items->m_skillAttack = query.getFloatField("skill_attack");
items->m_skillDefense = query.getFloatField("skill_defense");
items->m_description = query.getStringField("description");
this->m_shopData->addObject(items);
query.nextRow();
}
query.finalize();
}
else if(this->m_shopMode == kRPGMapDialogLayerShopModeSell)
{
//卖出
string sql;
switch (tag)
{
case kRPGMapDialogLayerTagShopMenuItems:
sql = ITEMS_EXISTING_QUERY4;
break;
case kRPGMapDialogLayerTagShopMenuArmor:
sql = ITEMS_EXISTING_QUERY3;
break;
case kRPGMapDialogLayerTagShopMenuArms:
sql = ITEMS_EXISTING_QUERY2;
break;
default:
sql = ITEMS_EXISTING_QUERY1;
break;
}
CppSQLite3Query query = this->m_db->execQuery(sql.c_str());
while(!query.eof())
{
RPGExistingItems *items = RPGExistingItems::create();
items->m_dataId = query.getIntField("id");
items->m_name = query.getStringField("name_cns");
items->m_buy = query.getIntField("buy");
items->m_sell = query.getIntField("sell");
items->m_type = query.getIntField("type");
items->m_attack = query.getFloatField("attack");
items->m_defense = query.getFloatField("defense");
items->m_speed = query.getFloatField("speed");
items->m_skillAttack = query.getFloatField("skill_attack");
items->m_skillDefense = query.getFloatField("skill_defense");
items->m_total = query.getIntField("total");
items->m_description = query.getStringField("description");
this->m_shopData->addObject(items);
query.nextRow();
}
query.finalize();
}
CCTMXTiledMap *alertDialog = (CCTMXTiledMap*)this->getChildByTag(kRPGMapDialogLayerTagAlertDialog);
CCTableView *tableView = (CCTableView*)alertDialog->getChildByTag(kRPGMapDialogLayerTagAlertDialogTable);
if(!tableView)
{
tableView = CCTableView::create(this, CCSizeMake(610, 320));
tableView->setDirection(kCCScrollViewDirectionVertical);
tableView->setPosition(ccp(20, 10));
tableView->setDelegate(this);
tableView->setVerticalFillOrder(kCCTableViewFillBottomUp);
tableView->setTag(kRPGMapDialogLayerTagAlertDialogTable);
alertDialog->addChild(tableView);
}
tableView->reloadData();
}
void RPGMapDialogLayer::showShopDefault()
{
//选择框的背景
CCTMXTiledMap *alertDialog = CCTMXTiledMap::create(CCString::createWithFormat("alert_%s.tmx", CCUserDefault::sharedUserDefault()->getStringForKey(GAME_STYLE).c_str())->getCString());
alertDialog->setPosition(ccp((CCDirector::sharedDirector()->getWinSize().width - alertDialog->getContentSize().width) / 2, (CCDirector::sharedDirector()->getWinSize().height - alertDialog->getContentSize().height) / 2));
alertDialog->setTag(kRPGMapDialogLayerTagAlertDialog);
this->addChild(alertDialog);
string text = " ";
text.append(this->m_npc->m_content->getCString());
CCLabelTTF *contentLab = (CCLabelTTF*)this->getChildByTag(kRPGMapDialogLayerTagContentLab);
if(this->m_npc->m_dataId == GAME_MAPSHOP_NPC_ID)
{
//道具屋
contentLab->setString(text.c_str());
CCControlButton *btnBuy = CCControlButton::create(((CCString*)this->m_stringList->objectForKey("npc_dialog_buy"))->getCString(), "Arial", 28);
btnBuy->setPosition(ccp(70, 100));
btnBuy->addTargetWithActionForControlEvents(this, cccontrol_selector(RPGMapDialogLayer::onButton), CCControlEventTouchUpInside);
btnBuy->setTag(kRPGMapDialogLayerTagBtnBuy);
alertDialog->addChild(btnBuy);
CCControlButton *btnSell = CCControlButton::create(((CCString*)this->m_stringList->objectForKey("npc_dialog_sell"))->getCString(), "Arial", 28);
btnSell->setPosition(ccp(190, 100));
btnSell->addTargetWithActionForControlEvents(this, cccontrol_selector(RPGMapDialogLayer::onButton), CCControlEventTouchUpInside);
btnSell->setTag(kRPGMapDialogLayerTagBtnSell);
alertDialog->addChild(btnSell);
CCControlButton *btnCancel = CCControlButton::create(((CCString*)this->m_stringList->objectForKey("npc_dialog_cancel"))->getCString(), "Arial", 28);
btnCancel->setPosition(ccp(310, 100));
btnCancel->addTargetWithActionForControlEvents(this, cccontrol_selector(RPGMapDialogLayer::onButton), CCControlEventTouchUpInside);
btnCancel->setTag(kRPGMapDialogLayerTagBtnCancel);
alertDialog->addChild(btnCancel);
}
else if(this->m_npc->m_dataId == GAME_MAPINN_NPC_ID)
{
//旅馆
contentLab->setString(CCString::createWithFormat(text.c_str(), GAME_INN)->getCString());
CCControlButton *btnInn = CCControlButton::create(((CCString*)this->m_stringList->objectForKey("npc_dialog_inn"))->getCString(), "Arial", 28);
btnInn->setPosition(ccp(100, 100));
btnInn->addTargetWithActionForControlEvents(this, cccontrol_selector(RPGMapDialogLayer::onButton), CCControlEventTouchUpInside);
btnInn->setTag(kRPGMapDialogLayerTagBtnInn);
alertDialog->addChild(btnInn);
CCControlButton *btnCancel = CCControlButton::create(((CCString*)this->m_stringList->objectForKey("npc_dialog_cancel"))->getCString(), "Arial", 28);
btnCancel->setPosition(ccp(285, 100));
btnCancel->addTargetWithActionForControlEvents(this, cccontrol_selector(RPGMapDialogLayer::onButton), CCControlEventTouchUpInside);
btnCancel->setTag(kRPGMapDialogLayerTagBtnCancel);
alertDialog->addChild(btnCancel);
}
}
+67 -3
View File
@@ -10,28 +10,92 @@
#define __OzgGameRPG__RPGMapDialogLayer__
#include "cocos2d.h"
#include "cocos-ext.h"
#include "RPGMapNPCRoleSprite.h"
#include "CppSQLite3.h"
USING_NS_CC;
USING_NS_CC_EXT;
using namespace std;
class RPGMapDialogLayer : public CCLayer
enum RPGMapDialogLayerTag {
kRPGMapDialogLayerTagBtnBuy = 1,
kRPGMapDialogLayerTagBtnSell = 2,
kRPGMapDialogLayerTagBtnInn = 3,
kRPGMapDialogLayerTagBtnCancel = 4,
kRPGMapDialogLayerTagShopMenu = 8,
kRPGMapDialogLayerTagShopMenuItems = 9,
kRPGMapDialogLayerTagShopMenuArms = 10,
kRPGMapDialogLayerTagShopMenuArmor = 11,
kRPGMapDialogLayerTagShopMenuAll = 12,
kRPGMapDialogLayerTagShopMenuCancel = 13,
kRPGMapDialogLayerTagBgMask = 5,
kRPGMapDialogLayerTagContentLab = 6,
kRPGMapDialogLayerTagAlertDialog = 7,
kRPGMapDialogLayerTagAlertDialogTable = 14,
kRPGMapDialogLayerTagAlertDialogRight = 15,
kRPGMapDialogLayerTagAlertDialogRightGold = 16,
kRPGMapDialogLayerTagAlertDialogRightDescription = 17
};
enum RPGMapDialogLayerShopMode {
kRPGMapDialogLayerShopModeBuy = 1,
kRPGMapDialogLayerShopModeSell = 2
};
class RPGMapDialogLayer : public CCLayer, CCTableViewDelegate, CCTableViewDataSource
{
private:
RPGMapNPCRoleSprite* m_npc;
CCDictionary *m_stringList;
CppSQLite3DB* m_db;
CCArray* m_shopData;
RPGMapDialogLayerShopMode m_shopMode;
void onButton(CCObject* pSender, CCControlEvent event);
void onButtonItemsName(CCObject* pSender, CCControlEvent event); //在物品列表里面点击了物品名称
void onButtonItems(CCObject* pSender, CCControlEvent event); //在物品列表里面点击了买入卖出
void onMenu(CCObject *pObject);
void cancelScene(); //退出场景
void inn(); //执行住宿
void innEnd(); //住宿的动作完成后执行
void buy(); //点击了买入
void sell(); //点了了卖出
void shopCommon(); //显示买入卖出的列表对话框
void showShopList(RPGMapDialogLayerTag tag);
void showShopDefault(); //显示商店的买入卖出的对话框
public:
RPGMapDialogLayer();
virtual ~RPGMapDialogLayer();
bool init(RPGMapNPCRoleSprite* npc);
static RPGMapDialogLayer* create(RPGMapNPCRoleSprite* npc);
bool init(CCDictionary *stringList, CppSQLite3DB* db, RPGMapNPCRoleSprite* npc);
static RPGMapDialogLayer* create(CCDictionary *stringList, CppSQLite3DB* db, RPGMapNPCRoleSprite* npc);
bool ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent);
void ccTouchMoved(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent);
void ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent);
//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__RPGMapDialogLayer__) */
+2
View File
@@ -36,6 +36,8 @@ bool RPGMapEquipMenuLayer::init(cocos2d::CCDictionary *stringList, CppSQLite3DB
this->m_itemsList = new CCArray();
this->m_itemsList->init();
this->m_isDefault = true;
CCTMXTiledMap *mainBg = CCTMXTiledMap::create(CCString::createWithFormat("map_menu2_%s.tmx", CCUserDefault::sharedUserDefault()->getStringForKey(GAME_STYLE).c_str())->getCString());
mainBg->setPosition(CCPointZero);
mainBg->setTag(kRPGMapEquipMenuLayerTagBg);
+5 -3
View File
@@ -17,12 +17,14 @@ RPGMapNPCRoleSprite::~RPGMapNPCRoleSprite()
// CCLog("RPGMapNPCRoleSprite 释放");
}
bool RPGMapNPCRoleSprite::init(CCString *roleTexture, CCString* headTexture, CCString* name, CCString* content, int defaultSpriteFrameIndex, bool autoMove)
bool RPGMapNPCRoleSprite::init(int dataId, CCString *roleTexture, CCString* headTexture, CCString* name, CCString* content, int defaultSpriteFrameIndex, bool autoMove)
{
if(RPGMapRoleSprite::init(roleTexture, name, false, defaultSpriteFrameIndex))
{
this->m_autoMove = autoMove;
this->m_dataId = dataId;
this->m_content = content;
this->m_content->retain();
@@ -36,10 +38,10 @@ bool RPGMapNPCRoleSprite::init(CCString *roleTexture, CCString* headTexture, CCS
}
//static
RPGMapNPCRoleSprite* RPGMapNPCRoleSprite::create(CCString *roleTexture, CCString* headTexture, CCString* name, CCString* content, int defaultSpriteFrameIndex, bool autoMove)
RPGMapNPCRoleSprite* RPGMapNPCRoleSprite::create(int dataId, CCString *roleTexture, CCString* headTexture, CCString* name, CCString* content, int defaultSpriteFrameIndex, bool autoMove)
{
RPGMapNPCRoleSprite *obj = new RPGMapNPCRoleSprite();
if(obj && obj->init(roleTexture, headTexture, name, content, defaultSpriteFrameIndex, autoMove))
if(obj && obj->init(dataId, roleTexture, headTexture, name, content, defaultSpriteFrameIndex, autoMove))
{
obj->autorelease();
return obj;
+3 -2
View File
@@ -22,11 +22,12 @@ private:
public:
int m_dataId;
CCString* m_content;
virtual ~RPGMapNPCRoleSprite();
virtual bool init(CCString *roleTexture, CCString* headTexture, CCString* name, CCString* content, int defaultSpriteFrameIndex, bool autoMove);
static RPGMapNPCRoleSprite* create(CCString *roleTexture, CCString* headTexture, CCString* name, CCString* content, int defaultSpriteFrameIndex, bool autoMove);
virtual bool init(int dataId, CCString *roleTexture, CCString* headTexture, CCString* name, CCString* content, int defaultSpriteFrameIndex, bool autoMove);
static RPGMapNPCRoleSprite* create(int dataId, CCString *roleTexture, CCString* headTexture, CCString* name, CCString* content, int defaultSpriteFrameIndex, bool autoMove);
void stopAutoMove();
void startAutoMove();
+4 -2
View File
@@ -366,8 +366,10 @@ void RPGMapSceneLayer::ccTouchEnded(CCTouch* touch, CCEvent* event)
{
this->m_touchedDialogNPC->stopAutoMove(); //暂时停止自动移动
this->enabledControl(false);
string content = this->m_touchedDialogNPC->m_content->getCString();
RPGMapDialogLayer *dialogLayer = RPGMapDialogLayer::create(this->m_touchedDialogNPC);
RPGMapDialogLayer *dialogLayer = RPGMapDialogLayer::create(this->m_stringList, &this->m_db, this->m_touchedDialogNPC);
this->addChild(dialogLayer);
CCMenu *mainMenu = (CCMenu*)bgMap->getChildByTag(kRPGMapSceneLayerTagMainMenu);
@@ -461,7 +463,7 @@ void RPGMapSceneLayer::startPlay(float delay)
float y = (stringToNumber<float>(query.getStringField("tmx_y")) + 0.5) * GAME_TMX_ROLE_HEIGHT;
bool autoMove = query.getIntField("auto_move") == 1 ? true : false;
RPGMapNPCRoleSprite *npc = RPGMapNPCRoleSprite::create(CCString::create(query.getStringField("map_texture")), CCString::create("head_texture"), CCString::create(query.getStringField("name_cns")), CCString::create(query.getStringField("content_cns")), 1, autoMove);
RPGMapNPCRoleSprite *npc = RPGMapNPCRoleSprite::create(query.getIntField("id"), CCString::create(query.getStringField("map_texture")), CCString::create("head_texture"), CCString::create(query.getStringField("name_cns")), CCString::create(query.getStringField("content_cns")), 1, autoMove);
npc->setTag(kRPGMapSceneLayerTagNPC + query.getIntField("id"));
npc->setPosition(ccp(x, y));
bgMap->addChild(npc);
+1 -1
View File
@@ -4,7 +4,7 @@ ozg game — RPG Demo
本游戏主要用于技术的研究和积累
游戏中所用的一部分图片来自 http://www.66rpg.com/type.php?t=17 另一部分图片来自 http://usui.moo.jp/rpg_tukuru.html
游戏中所用图片来自 http://www.66rpg.com/type.php?t=17 http://usui.moo.jp/rpg_tukuru.html
声音文件来自 http://www.66rpg.com/type.php?t=17
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_a_00" tilewidth="16" tileheight="16">
<image source="Window_a_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="24" height="12">
<layer name="behind" width="24" height="12" opacity="0.55">
<data encoding="base64" compression="zlib">
eJzjZmBg4B7Fo3gUj+IBwAD21Qxh
eJzjYWBg4BnFo3gUj+IBwACBQg2B
</data>
</layer>
<layer name="front" width="24" height="12">
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_b_00" tilewidth="16" tileheight="16">
<image source="Window_b_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="24" height="12">
<layer name="behind" width="24" height="12" opacity="0.66">
<data encoding="base64" compression="zlib">
eJzTYmBg0KIAqxDAlJg9av6o+ZTaQ6z5o3hgMACa9Ct1
eJzjYmBg4BrFo3gUj+IBwABsdwtB
</data>
</layer>
<layer name="front" width="24" height="12">
+1 -1
View File
@@ -5,7 +5,7 @@
</tileset>
<layer name="behind" width="24" height="12">
<data encoding="base64" compression="zlib">
eJwTZmBgEB7Fo3gUj+IBwABKEBVh
eJzTZmBg0B7Fo3gUj+IBwABDozBh
</data>
</layer>
<layer name="front" width="24" height="12">
BIN
View File
Binary file not shown.
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_a_00" tilewidth="16" tileheight="16">
<image source="Window_a_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="10" height="16" opacity="0.79">
<layer name="behind" width="10" height="16" opacity="0.6">
<data encoding="base64" compression="zlib">
eJwTYmBgEBrFo3iAMAAp0gtB
eJzjYmBg4BrFo3iAMADfaQZB
</data>
</layer>
<layer name="bront" width="10" height="16">
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_b_00" tilewidth="16" tileheight="16">
<image source="Window_b_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="10" height="16" opacity="0.79">
<layer name="behind" width="10" height="16" opacity="0.73">
<data encoding="base64" compression="zlib">
eJwTZmBgEB7FgwYLUqhOkExMrF5i/SFDJAYA3+4MCQ==
eJwTZmBgEB7Fo3iAMADzEgvh
</data>
</layer>
<layer name="bront" width="10" height="16">
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_c_00" tilewidth="16" tileheight="16">
<image source="Window_c_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="10" height="16" opacity="0.79">
<layer name="behind" width="10" height="16" opacity="0.53">
<data encoding="base64" compression="zlib">
eJzjYmBg4BrFo3iAMADfaQZB
eJzjZmBg4B7Fo3iAMACouAbh
</data>
</layer>
<layer name="bront" width="10" height="16">
+1 -1
View File
@@ -3,7 +3,7 @@
<tileset firstgid="1" name="Window_a_00" tilewidth="16" tileheight="16">
<image source="Window_a_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="12" opacity="0.33">
<layer name="behind" width="60" height="12" opacity="0.5">
<data encoding="base64" compression="zlib">
eJztwwENAAAMw6BqmH+xt3ABkLBqqqrq6wFFMzKh
</data>
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_b_00" tilewidth="16" tileheight="16">
<image source="Window_b_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="12" opacity="0.33">
<layer name="behind" width="60" height="12" opacity="0.66">
<data encoding="base64" compression="zlib">
eJztwwENAAAMw6AKmX+dt3ABkLBqqqrq6wG6tU7B
eJztw0ENAAAMA6H717/fWZgASFg1VVX19QBZUh7x
</data>
</layer>
<layer name="bront" width="60" height="12">
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_c_00" tilewidth="16" tileheight="16">
<image source="Window_c_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="12" opacity="0.33">
<layer name="behind" width="60" height="12" opacity="0.49">
<data encoding="base64" compression="zlib">
eJztwwENAAAMw6CKmH+tt3ABkLBqqqrq6wH2RDhB
eJztw0ENAAAMA6F717/gWZgASFg1VVX19QCAwhwh
</data>
</layer>
<layer name="bront" width="60" height="12">
+1 -1
View File
@@ -8,7 +8,7 @@
</tileset>
<layer name="behind" width="30" height="3" opacity="0.68">
<data encoding="base64" compression="zlib">
eJxzYmBgcBrFNMcAgVAXNQ==
eJzzZmBg8B7FNMcAwUoaXw==
</data>
</layer>
<layer name="bront" width="30" height="3">
+1 -1
View File
@@ -5,7 +5,7 @@
</tileset>
<layer name="behind" width="30" height="3" opacity="0.68">
<data encoding="base64" compression="zlib">
eJzjYmBg4BrFNMcAgV4DhQ==
eJwTZmBgEB7FNMcAwVgGrw==
</data>
</layer>
<layer name="bront" width="30" height="3">
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_c_00" tilewidth="16" tileheight="16">
<image source="Window_c_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="30" height="3" opacity="0.68">
<layer name="behind" width="30" height="3" opacity="0.5">
<data encoding="base64" compression="zlib">
eJzjZmBg4B7FNMcAwVoD3w==
eJwTYmBgEBrFNMcAgVwGVQ==
</data>
</layer>
<layer name="bront" width="30" height="3">
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_a_00" tilewidth="16" tileheight="16">
<image source="Window_a_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="20" height="20" opacity="0.79">
<layer name="behind" width="20" height="20" opacity="0.57">
<data encoding="base64" compression="zlib">
eJwTZmBgEB7Fo3gUj+JRPIpJxAANEx2x
eJzjZmBg4B7Fo3gUj+JRPIpJxADhuxEx
</data>
</layer>
<layer name="bront" width="20" height="20">
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_b_00" tilewidth="16" tileheight="16">
<image source="Window_b_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="20" height="20" opacity="0.79">
<layer name="behind" width="20" height="20" opacity="0.7">
<data encoding="base64" compression="zlib">
eJwTZmBgEMaDefBgfPoIYWqbOWre4DGP2mmGFmmQWPME6WSeIBomxTxiMCnhR23zqJ3+ZIjAtCizRjEmBgDuqhsb
eJwTYmBgEBrFo3gUj+JRPIpJxAAnqBwh
</data>
</layer>
<layer name="bront" width="20" height="20">
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_c_00" tilewidth="16" tileheight="16">
<image source="Window_c_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="20" height="20" opacity="0.79">
<layer name="behind" width="20" height="20" opacity="0.49">
<data encoding="base64" compression="zlib">
eJzjYmBg4BrFo3gUj+JRPIpJxAD8UA+h
eJwTZmBgEB7Fo3gUj+JRPIpJxAANEx2x
</data>
</layer>
<layer name="bront" width="20" height="20">
BIN
View File
Binary file not shown.
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_a_00" tilewidth="16" tileheight="16">
<image source="Window_a_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="10" opacity="0.5">
<layer name="behind" width="60" height="10" opacity="0.53">
<data encoding="base64" compression="zlib">
eJzjZmBg4B7Fo3gUj+JRPIpH8SgexVTDAB2HGck=
eJzjYWBg4BnFo3gUj+JRPIpH8SgexVTDAB9cHCE=
</data>
</layer>
<layer name="bront" width="60" height="10">
+1 -1
View File
@@ -3,7 +3,7 @@
<tileset firstgid="1" name="Window_b_00" tilewidth="16" tileheight="16">
<image source="Window_b_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="10" opacity="0.5">
<layer name="behind" width="60" height="10" opacity="0.7">
<data encoding="base64" compression="zlib">
eJzjZmBg4B7Fo3gUj+JRPIpH8SgexVTDAB2HGck=
</data>
+1 -1
View File
@@ -3,7 +3,7 @@
<tileset firstgid="1" name="Window_c_00" tilewidth="16" tileheight="16">
<image source="Window_c_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="10" opacity="0.5">
<layer name="behind" width="60" height="10" opacity="0.66">
<data encoding="base64" compression="zlib">
eJwTZmBgEB7Fo3gUj+JRPIpH8SgexVTDACwvLIk=
</data>
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_a_00" tilewidth="16" tileheight="16">
<image source="Window_a_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="40">
<layer name="behind" width="60" height="40" opacity="0.49">
<data encoding="base64" compression="zlib">
eJztwzENAAAMBKGb37/gaugOCaumqqqqqqqqqqrq+wEYEV3B
eJztw0ENAAAMA6HTUP9ip2F/SFg1VVVVVVVVVVVV3w9AgqjB
</data>
</layer>
<layer name="bront" width="60" height="40">
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_b_00" tilewidth="16" tileheight="16">
<image source="Window_b_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="40">
<layer name="behind" width="60" height="40" opacity="0.65">
<data encoding="base64" compression="zlib">
eJztw0ENAAAMA6HzU//+pmF/SFg1VVVVVVVVVVVV3w+e5ZMw
eJztwzENAAAMBKGb37/gaugOCaumqqqqqqqqqqrq+wEYEV3B
</data>
</layer>
<layer name="bront" width="60" height="40">
+1 -1
View File
@@ -5,7 +5,7 @@
</tileset>
<layer name="behind" width="60" height="40">
<data encoding="base64" compression="zlib">
eJztw0ENAAAMA6HzUP9ep2F/SFg1VVVVVVVVVVVV3w8lkrIh
eJztw0ENAAAMA6HTU/8Cp2F/SFg1VVVVVVVVVVVV3w+51YnQ
</data>
</layer>
<layer name="bront" width="60" height="40">
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_a_00" tilewidth="16" tileheight="16">
<image source="Window_a_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="40">
<layer name="behind" width="60" height="40" opacity="0.49">
<data encoding="base64" compression="zlib">
eJztw0ENAAAMA6HTUP9ip2F/SFg1VVVVVVVVVVVV3w9AgqjB
eJztwzENAAAMBKHb37/faugOCaumqqqqqqqqqqrq+wH9Emch
</data>
</layer>
<layer name="bront" width="60" height="40">
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_b_00" tilewidth="16" tileheight="16">
<image source="Window_b_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="40">
<layer name="behind" width="60" height="40" opacity="0.61">
<data encoding="base64" compression="zlib">
eJztwzENAEAIBLDTwvr418eKgJ9Im7STtKqq3z5PL1VVVVVVVV0HugBaeA==
eJztwzENAAAMBKHb37/faugOCaumqqqqqqqqqqrq+wH9Emch
</data>
</layer>
<layer name="bront" width="60" height="40">
+1 -1
View File
@@ -5,7 +5,7 @@
</tileset>
<layer name="behind" width="60" height="40">
<data encoding="base64" compression="zlib">
eJztwzENAAAMBKHb37/faugOCaumqqqqqqqqqqrq+wH9Emch
eJztw0ENAAAMA6HzU//+pmF/SFg1VVVVVVVVVVVV3w+e5ZMw
</data>
</layer>
<layer name="bront" width="60" height="40">
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_a_00" tilewidth="16" tileheight="16">
<image source="Window_a_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="40">
<layer name="behind" width="60" height="40" opacity="0.5">
<data encoding="base64" compression="zlib">
eJztw0ENAAAMA6HTUP9ip2F/SFg1VVVVVVVVVVVV3w9AgqjB
eJztw0ENAAAMA6ETUf9ap2F/SFg1VVVVVVVVVVVV3w8KoruB
</data>
</layer>
<layer name="bront" width="60" height="40">
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_b_00" tilewidth="16" tileheight="16">
<image source="Window_b_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="40">
<layer name="behind" width="60" height="40" opacity="0.67">
<data encoding="base64" compression="zlib">
eJztw0ENAAAMA6HzU//+pmF/SFg1VVVVVVVVVVVV3w+e5ZMw
eJztw0ENAAAMA6HTUP9ip2F/SFg1VVVVVVVVVVVV3w9AgqjB
</data>
</layer>
<layer name="bront" width="60" height="40">
+1 -1
View File
@@ -6,7 +6,7 @@
</tileset>
<layer name="behind" width="60" height="40">
<data encoding="base64" compression="zlib">
eJztwzENAAAMBKGb37/gaugOCaumqqqqqqqqqqrq+wEYEV3B
eJztw0ENAAAMA6HzU//+pmF/SFg1VVVVVVVVVVVV3w+e5ZMw
</data>
</layer>
<layer name="bront" width="60" height="40">
+1 -1
View File
@@ -4,7 +4,7 @@
<tileoffset x="-1" y="0"/>
<image source="Window_a_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="40">
<layer name="behind" width="60" height="40" opacity="0.47">
<data encoding="base64" compression="zlib">
eJztw0ENAAAMA6HzUP9ep2F/SFg1VVVVVVVVVVVV3w8lkrIh
</data>
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_b_00" tilewidth="16" tileheight="16">
<image source="Window_b_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="40">
<layer name="behind" width="60" height="40" opacity="0.63">
<data encoding="base64" compression="zlib">
eJztwzENAEAIBLDTwvr418eKgJ9Im7STtKqq3z5PL1VVVVVVVV0HugBaeA==
eJztw8EJAAAMA6GD7L9zZ+hfwVVTVVVVVVVVVVX1/QDUoRwh
</data>
</layer>
<layer name="bront" width="60" height="40">
+1 -1
View File
@@ -6,7 +6,7 @@
</tileset>
<layer name="behind" width="60" height="40">
<data encoding="base64" compression="zlib">
eJztw0ENAAAMA6HzUP9ep2F/SFg1VVVVVVVVVVVV3w8lkrIh
eJztw0ENAAAMA6HzU//+pmF/SFg1VVVVVVVVVVVV3w+e5ZMw
</data>
</layer>
<layer name="bront" width="60" height="40">
+2 -2
View File
@@ -4,9 +4,9 @@
<tileoffset x="-1" y="0"/>
<image source="Window_a_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="40">
<layer name="behind" width="60" height="40" opacity="0.5">
<data encoding="base64" compression="zlib">
eJztw8EJAAAMA6GD7L9zZ+hfwVVTVVVVVVVVVVX1/QDUoRwh
eJztw0ENAAAMA6GzUP9mp2F/SFg1VVVVVVVVVVVV3w9bcp9h
</data>
</layer>
<layer name="bront" width="60" height="40">
+2 -2
View File
@@ -3,9 +3,9 @@
<tileset firstgid="1" name="Window_b_00" tilewidth="16" tileheight="16">
<image source="Window_b_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="60" height="40">
<layer name="behind" width="60" height="40" opacity="0.64">
<data encoding="base64" compression="zlib">
eJztwzENAEAIBLDTwvr418eKgJ9Im7STtKqq3z5PL1VVVVVVVV0HugBaeA==
eJztw0ENAAAMA6HTUP9ip2F/SFg1VVVVVVVVVVVV3w9AgqjB
</data>
</layer>
<layer name="bront" width="60" height="40">
+1 -1
View File
@@ -6,7 +6,7 @@
</tileset>
<layer name="behind" width="60" height="40">
<data encoding="base64" compression="zlib">
eJztwzENAAAMBKHb37/faugOCaumqqqqqqqqqqrq+wH9Emch
eJztw0ENAAAMA6HTU/8Cp2F/SFg1VVVVVVVVVVVV3w+51YnQ
</data>
</layer>
<layer name="bront" width="60" height="40">
+30
View File
@@ -76,5 +76,35 @@
<string>武器:%s</string>
<key>menu_equip_armor</key>
<string>防具:%s</string>
<key>npc_dialog_buy</key>
<string>买入</string>
<key>npc_dialog_buy_msg</key>
<string>需要购买什么物品呢?</string>
<key>npc_dialog_buy_msg2</key>
<string>你的金钱不够。</string>
<key>npc_dialog_buy_msg3</key>
<string>谢谢惠顾。</string>
<key>npc_dialog_buy_msg4</key>
<string>该物品数已达到最大值</string>
<key>npc_dialog_sell</key>
<string>卖出</string>
<key>npc_dialog_sell_msg</key>
<string>需要卖出什么物品呢?</string>
<key>npc_dialog_sell_msg2</key>
<string>谢谢惠顾。</string>
<key>npc_dialog_inn</key>
<string>住宿</string>
<key>npc_dialog_inn_msg</key>
<string>你的金钱不够。</string>
<key>npc_dialog_cancel</key>
<string>取消</string>
<key>npc_shop_category_all</key>
<string>全部</string>
<key>npc_shop_category_items</key>
<string>道具</string>
<key>npc_shop_category_arms</key>
<string>武器</string>
<key>npc_shop_category_armor</key>
<string>防具</string>
</dict>
</plist>
+1 -1
View File
@@ -6,7 +6,7 @@
</tileset>
<layer name="behind" width="28" height="6" opacity="0.62">
<data encoding="base64" compression="zlib">
eJwTZmBgEB7Fo3iQYgB6AAx5
eJzjYmBg4BrFo3iQYgCtOAaR
</data>
</layer>
<layer name="front" width="28" height="6">
+1 -1
View File
@@ -5,7 +5,7 @@
</tileset>
<layer name="behind" width="28" height="6" opacity="0.62">
<data encoding="base64" compression="zlib">
eJwTYWBgEKEhZkHDtLRr1D7KzKS3/9DNxoYBiMELMQ==
eJwTYmBgEBrFo3iQYgCcIQvR
</data>
</layer>
<layer name="front" width="28" height="6">
+1 -1
View File
@@ -6,7 +6,7 @@
</tileset>
<layer name="behind" width="28" height="6" opacity="0.62">
<data encoding="base64" compression="zlib">
eJwTYmBgEBrFo3iQYgCcIQvR
eJwzZmBgMB7Fo3iQYgA1pCF5
</data>
</layer>
<layer name="front" width="28" height="6">
+16
View File
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" width="40" height="26" tilewidth="16" tileheight="16">
<tileset firstgid="1" name="Window_a_00" tilewidth="16" tileheight="16">
<image source="Window_a_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="40" height="26" opacity="0.51">
<data encoding="base64" compression="zlib">
eJztwwENAAAMw6BqmH+xd3AFkLBqqqqqqs8D6U5JIQ==
</data>
</layer>
<layer name="front" width="40" height="26">
<data encoding="base64" compression="zlib">
eJztlzEKwCAQBLcxphHSpIzx/6/0/ECELHIn7MD00+zBJQDHIjPpaRbE5UL8vts74oPR95jVyXdiMxPW7YPdjvbBoT6OHfqi3z/1/Ud9HOrjUB+H+jjUx7FD3/iPZn+Kl83sdJEOgg==
</data>
</layer>
</map>
+16
View File
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" width="40" height="26" tilewidth="16" tileheight="16">
<tileset firstgid="1" name="Window_b_00" tilewidth="16" tileheight="16">
<image source="Window_b_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="40" height="26" opacity="0.64">
<data encoding="base64" compression="zlib">
eJztw0ENAAAMA6H717/fOZgCSFg1VVVV1ecBlOUssQ==
</data>
</layer>
<layer name="front" width="40" height="26">
<data encoding="base64" compression="zlib">
eJztl6EOgDAMBZ8ZzJBgJoH9/1fSivmVl5SJd8n5y9aKFgBbonvAajasywn1MXjfZT6L2s2C2Mxm6vtxRB89Ef9f9X1HfRzq41Afh/o41MehPg71caiPY9xH9w/O3kcvxxAOOw==
</data>
</layer>
</map>
+16
View File
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" width="40" height="26" tilewidth="16" tileheight="16">
<tileset firstgid="1" name="Window_c_00" tilewidth="16" tileheight="16">
<image source="Window_c_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="40" height="26">
<data encoding="base64" compression="zlib">
eJztwwENAAAMw6D6mX9/d3AFkLBqqqqqqs8DFuOusQ==
</data>
</layer>
<layer name="front" width="40" height="26">
<data encoding="base64" compression="zlib">
eJztlzsKgEAMBV+zaiPYLNj4uf8p3ZxglQdmixmYfghJkSJpSnLuuDSrxmUTfQ7RdzSvQb2bRf09zTLuY/069B/ZRZ8DfR70edDnQZ8HfR70edDnQZ9H9MV/dCb55j96AFAgDs8=
</data>
</layer>
</map>
+16
View File
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" width="12" height="26" tilewidth="16" tileheight="16">
<tileset firstgid="1" name="Window_a_00" tilewidth="16" tileheight="16">
<image source="Window_a_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="12" height="26" opacity="0.48">
<data encoding="base64" compression="zlib">
eJzjYWBg4BnFo3gUj+JhiAHKLQ6h
</data>
</layer>
<layer name="front" width="12" height="26">
<data encoding="base64" compression="zlib">
eJxjZWBgYCMScwAxLwPxQIAM9aIkqJcAYlkglicSKwAxKxCzE4np4d/Bpp6U8B9VP6qe3upJze8AU70GgQ==
</data>
</layer>
</map>
+16
View File
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" width="12" height="26" tilewidth="16" tileheight="16">
<tileset firstgid="1" name="Window_b_00" tilewidth="16" tileheight="16">
<image source="Window_b_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="12" height="26" opacity="0.65">
<data encoding="base64" compression="zlib">
eJwTZmBgEB7Fo3gUj+JhiAGn+Bcp
</data>
</layer>
<layer name="front" width="12" height="26">
<data encoding="base64" compression="zlib">
eJxjZWBgYCMScwCxKAPxQIAO6mWBWJ5IrADErEDMTiQejP4dVT+qfiSrJzW/AwADLAax
</data>
</layer>
</map>
+16
View File
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" width="12" height="26" tilewidth="16" tileheight="16">
<tileset firstgid="1" name="Window_c_00" tilewidth="16" tileheight="16">
<image source="Window_c_00.png" width="128" height="128"/>
</tileset>
<layer name="behind" width="12" height="26" opacity="0.75">
<data encoding="base64" compression="zlib">
eJwTZmBgEB7Fo3gUj+JhiAGn+Bcp
</data>
</layer>
<layer name="front" width="12" height="26">
<data encoding="base64" compression="zlib">
eJxjZWBgYCMScwCxKAPxQIAO6mWBWJ5IrADErEDMTiQejP4dVT+qfiSrJzW/AwADLAax
</data>
</layer>
</map>
@@ -235,6 +235,7 @@
893D34D41906B01100BFE2C5 /* attack_damage.plist in Resources */ = {isa = PBXBuildFile; fileRef = 893D34D21906B01100BFE2C5 /* attack_damage.plist */; };
893D34D51906B01100BFE2C5 /* attack_damage.png in Resources */ = {isa = PBXBuildFile; fileRef = 893D34D31906B01100BFE2C5 /* attack_damage.png */; };
89426221190FE50B002CA822 /* audio_skill_cure.wav in Resources */ = {isa = PBXBuildFile; fileRef = 89426220190FE50B002CA822 /* audio_skill_cure.wav */; };
89552541194097F000E20D7A /* audio_inn.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 89552540194097F000E20D7A /* audio_inn.mp3 */; };
895EC07318F05AE600C3814D /* RPGData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 895EC07118F05AE600C3814D /* RPGData.cpp */; };
8960C17F18E7D0BD0075EF99 /* alert_style1.tmx in Resources */ = {isa = PBXBuildFile; fileRef = 8960C17E18E7D0BD0075EF99 /* alert_style1.tmx */; };
8960C18218E7D51C0075EF99 /* RPGDialogLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8960C18018E7D51C0075EF99 /* RPGDialogLayer.cpp */; };
@@ -365,7 +366,13 @@
9E5271E618F6489B0018BD94 /* RPGMapSkillMenuLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9E5271E418F6489B0018BD94 /* RPGMapSkillMenuLayer.cpp */; };
9E5C5F6E18EE59BB00A68C36 /* battle_menu_style1.tmx in Resources */ = {isa = PBXBuildFile; fileRef = 9E5C5F6D18EE59BB00A68C36 /* battle_menu_style1.tmx */; };
9E5C5F7118EE68BD00A68C36 /* RPGBattleMonsterSprite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9E5C5F6F18EE68BD00A68C36 /* RPGBattleMonsterSprite.cpp */; };
9E75CE3019419AEE0062B6D2 /* shop_menu_style1.tmx in Resources */ = {isa = PBXBuildFile; fileRef = 9E75CE2D19419AEE0062B6D2 /* shop_menu_style1.tmx */; };
9E75CE3119419AEE0062B6D2 /* shop_menu_style2.tmx in Resources */ = {isa = PBXBuildFile; fileRef = 9E75CE2E19419AEE0062B6D2 /* shop_menu_style2.tmx */; };
9E75CE3219419AEE0062B6D2 /* shop_menu_style3.tmx in Resources */ = {isa = PBXBuildFile; fileRef = 9E75CE2F19419AEE0062B6D2 /* shop_menu_style3.tmx */; };
9E83B14A18F66151001E9616 /* RPGMapChoicePlayerMenuLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9E83B14818F66151001E9616 /* RPGMapChoicePlayerMenuLayer.cpp */; };
9EF7A9841940598000F5DDED /* shop_list_style1.tmx in Resources */ = {isa = PBXBuildFile; fileRef = 9EF7A9831940598000F5DDED /* shop_list_style1.tmx */; };
9EF7A98719405D6900F5DDED /* shop_list_style2.tmx in Resources */ = {isa = PBXBuildFile; fileRef = 9EF7A98519405D6900F5DDED /* shop_list_style2.tmx */; };
9EF7A98819405D6900F5DDED /* shop_list_style3.tmx in Resources */ = {isa = PBXBuildFile; fileRef = 9EF7A98619405D6900F5DDED /* shop_list_style3.tmx */; };
ED35C0C718323498002A0750 /* CCArmatureAnimation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED35C03818323497002A0750 /* CCArmatureAnimation.cpp */; };
ED35C0C818323498002A0750 /* CCProcessBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED35C03A18323497002A0750 /* CCProcessBase.cpp */; };
ED35C0C918323498002A0750 /* CCTween.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED35C03C18323497002A0750 /* CCTween.cpp */; };
@@ -891,6 +898,7 @@
893D34D21906B01100BFE2C5 /* attack_damage.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = attack_damage.plist; sourceTree = "<group>"; };
893D34D31906B01100BFE2C5 /* attack_damage.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = attack_damage.png; sourceTree = "<group>"; };
89426220190FE50B002CA822 /* audio_skill_cure.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = audio_skill_cure.wav; sourceTree = "<group>"; };
89552540194097F000E20D7A /* audio_inn.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = audio_inn.mp3; sourceTree = "<group>"; };
895EC07118F05AE600C3814D /* RPGData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RPGData.cpp; path = ../Classes/RPGData.cpp; sourceTree = "<group>"; };
895EC07218F05AE600C3814D /* RPGData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RPGData.h; path = ../Classes/RPGData.h; sourceTree = "<group>"; };
8960C17E18E7D0BD0075EF99 /* alert_style1.tmx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = alert_style1.tmx; sourceTree = "<group>"; };
@@ -1058,8 +1066,14 @@
9E5C5F6D18EE59BB00A68C36 /* battle_menu_style1.tmx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = battle_menu_style1.tmx; sourceTree = "<group>"; };
9E5C5F6F18EE68BD00A68C36 /* RPGBattleMonsterSprite.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RPGBattleMonsterSprite.cpp; path = ../Classes/RPGBattleMonsterSprite.cpp; sourceTree = "<group>"; };
9E5C5F7018EE68BD00A68C36 /* RPGBattleMonsterSprite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RPGBattleMonsterSprite.h; path = ../Classes/RPGBattleMonsterSprite.h; sourceTree = "<group>"; };
9E75CE2D19419AEE0062B6D2 /* shop_menu_style1.tmx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = shop_menu_style1.tmx; sourceTree = "<group>"; };
9E75CE2E19419AEE0062B6D2 /* shop_menu_style2.tmx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = shop_menu_style2.tmx; sourceTree = "<group>"; };
9E75CE2F19419AEE0062B6D2 /* shop_menu_style3.tmx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = shop_menu_style3.tmx; sourceTree = "<group>"; };
9E83B14818F66151001E9616 /* RPGMapChoicePlayerMenuLayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RPGMapChoicePlayerMenuLayer.cpp; path = ../Classes/RPGMapChoicePlayerMenuLayer.cpp; sourceTree = "<group>"; };
9E83B14918F66151001E9616 /* RPGMapChoicePlayerMenuLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RPGMapChoicePlayerMenuLayer.h; path = ../Classes/RPGMapChoicePlayerMenuLayer.h; sourceTree = "<group>"; };
9EF7A9831940598000F5DDED /* shop_list_style1.tmx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = shop_list_style1.tmx; sourceTree = "<group>"; };
9EF7A98519405D6900F5DDED /* shop_list_style2.tmx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = shop_list_style2.tmx; sourceTree = "<group>"; };
9EF7A98619405D6900F5DDED /* shop_list_style3.tmx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = shop_list_style3.tmx; sourceTree = "<group>"; };
ED35C03818323497002A0750 /* CCArmatureAnimation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCArmatureAnimation.cpp; sourceTree = "<group>"; };
ED35C03918323497002A0750 /* CCArmatureAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCArmatureAnimation.h; sourceTree = "<group>"; };
ED35C03A18323497002A0750 /* CCProcessBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CCProcessBase.cpp; sourceTree = "<group>"; };
@@ -2486,6 +2500,12 @@
F293BC4615EB859D00256477 /* Resources */ = {
isa = PBXGroup;
children = (
9E75CE2D19419AEE0062B6D2 /* shop_menu_style1.tmx */,
9E75CE2E19419AEE0062B6D2 /* shop_menu_style2.tmx */,
9E75CE2F19419AEE0062B6D2 /* shop_menu_style3.tmx */,
9EF7A9831940598000F5DDED /* shop_list_style1.tmx */,
9EF7A98519405D6900F5DDED /* shop_list_style2.tmx */,
9EF7A98619405D6900F5DDED /* shop_list_style3.tmx */,
8905D0C0190CC5E70031F27E /* use_item.plist */,
89D2A12A190B431F00EDD50B /* skill_cure.plist */,
89D2A12B190B431F00EDD50B /* skill_fire.plist */,
@@ -2509,6 +2529,7 @@
8909856F18F253DE0021AE26 /* battle_msg_style1.tmx */,
89E55605191BDD4F00D49FAB /* battle_msg_style2.tmx */,
89E55606191BDD4F00D49FAB /* battle_msg_style3.tmx */,
89552540194097F000E20D7A /* audio_inn.mp3 */,
8988A4DD18F42BDC004277ED /* audio_battle_attack1.wav */,
8988A4DE18F42BDC004277ED /* audio_battle_attack2.wav */,
89426220190FE50B002CA822 /* audio_skill_cure.wav */,
@@ -2708,6 +2729,7 @@
15C156981683138E00D239F2 /* Default-568h@2x.png in Resources */,
89F5D14F18E7C5E5009D703C /* db.sys in Resources */,
896BAEE718EF04CF006581FD /* audio_battle_menu.wav in Resources */,
89552541194097F000E20D7A /* audio_inn.mp3 in Resources */,
15C156991683138E00D239F2 /* Default.png in Resources */,
89E5561F191BDD4F00D49FAB /* battle_select_style2.tmx in Resources */,
89F5D13F18E7C5DD009D703C /* main.plist in Resources */,
@@ -2720,6 +2742,7 @@
89F5D14D18E7C5DD009D703C /* Window_b_00.png in Resources */,
9E427D0518EBBA9F00DA4E79 /* map_menu4_style1.tmx in Resources */,
89E55622191BDD4F00D49FAB /* dialog_style3.tmx in Resources */,
9E75CE3019419AEE0062B6D2 /* shop_menu_style1.tmx in Resources */,
89F5D13E18E7C5DD009D703C /* joystick.png in Resources */,
89E55620191BDD4F00D49FAB /* battle_select_style3.tmx in Resources */,
89E5562D191BDD4F00D49FAB /* select_player_style2.tmx in Resources */,
@@ -2732,20 +2755,24 @@
89FD46CD190EA54300EF34C6 /* audio_use_items.wav in Resources */,
89F5D12B18E7C5CC009D703C /* audio_start.mp3 in Resources */,
89D2A12C190B431F00EDD50B /* skill_cure.plist in Resources */,
9EF7A98819405D6900F5DDED /* shop_list_style3.tmx in Resources */,
89E5562C191BDD4F00D49FAB /* map_menu5_style3.tmx in Resources */,
15C1569A1683138E00D239F2 /* Default@2x.png in Resources */,
89E63C7718ED83C900BDD04F /* actor5_2.png in Resources */,
89E5562B191BDD4F00D49FAB /* map_menu5_style2.tmx in Resources */,
89CB7D7F18E9A47800A5921B /* map_menu1_style1.tmx in Resources */,
89F5D12A18E7C5CC009D703C /* audio_map_03.mp3 in Resources */,
9EF7A98719405D6900F5DDED /* shop_list_style2.tmx in Resources */,
89B2115B18FAAC3B0019F01C /* map_menu5_style1.tmx in Resources */,
89E5561E191BDD4F00D49FAB /* battle_msg_style3.tmx in Resources */,
890F1B5D1902E284002F2769 /* attack2.ExportJson in Resources */,
9E75CE3119419AEE0062B6D2 /* shop_menu_style2.tmx in Resources */,
89E63C7D18ED83C900BDD04F /* actor8_3.png in Resources */,
89F5D11A18E7C5C0009D703C /* actor111.png in Resources */,
89E63C7B18ED83C900BDD04F /* actor8_1.png in Resources */,
15C1569B1683138E00D239F2 /* Icon-57.png in Resources */,
89E55623191BDD4F00D49FAB /* map_menu1_style2.tmx in Resources */,
9EF7A9841940598000F5DDED /* shop_list_style1.tmx in Resources */,
15C1569C1683138E00D239F2 /* Icon-72.png in Resources */,
89EA57BE18EAF1EC00A10956 /* monsters.plist in Resources */,
890F1B661902E284002F2769 /* attack40.plist in Resources */,
@@ -2779,6 +2806,7 @@
89E55625191BDD4F00D49FAB /* map_menu2_style2.tmx in Resources */,
89F5D10918E7C5C0009D703C /* actor4_3.png in Resources */,
8909857018F253DE0021AE26 /* battle_msg_style1.tmx in Resources */,
9E75CE3219419AEE0062B6D2 /* shop_menu_style3.tmx in Resources */,
890F1B5F1902E284002F2769 /* attack4.ExportJson in Resources */,
89E5562E191BDD4F00D49FAB /* select_player_style3.tmx in Resources */,
89F5D14318E7C5DD009D703C /* map_03.tmx in Resources */,
@@ -5,7 +5,7 @@
<key>IDESourceControlProjectFavoriteDictionaryKey</key>
<false/>
<key>IDESourceControlProjectIdentifier</key>
<string>4FCC479F-1C79-4DAC-9C48-81A225E56215</string>
<string>DAAA22FC-D79A-4F29-B461-F7B5AD8BCC22</string>
<key>IDESourceControlProjectName</key>
<string>OzgGameRPG</string>
<key>IDESourceControlProjectOriginsDictionary</key>