修正技能部分存在的bug

This commit is contained in:
ozg
2014-04-26 10:32:03 +08:00
parent f5ffc40968
commit 3257587d28
11 changed files with 271 additions and 17 deletions
+1
View File
@@ -96,6 +96,7 @@ public:
float m_skillAttack;
int m_MP;
int m_type;
int m_attr;
RPGSkill();
virtual ~RPGSkill();
+39 -15
View File
@@ -12,6 +12,31 @@
#include "RPGMapChoicePlayerMenuLayer.h"
#include "OzgCCUtility.h"
//RPGSkillBtnData
class RPGSkillBtnData : public RPGSkill
{
public:
bool m_enabled; //是否可点击
static RPGSkillBtnData* create();
};
RPGSkillBtnData* RPGSkillBtnData::create()
{
RPGSkillBtnData *obj = new RPGSkillBtnData();
if(obj)
{
obj->autorelease();
return obj;
}
CC_SAFE_DELETE(obj);
return NULL;
}
//RPGSkillBtnData end
RPGMapSkillMenuLayer::RPGMapSkillMenuLayer()
{
@@ -39,8 +64,6 @@ bool RPGMapSkillMenuLayer::init(cocos2d::CCDictionary *stringList, CppSQLite3DB
this->m_isDefault = true;
this->m_enabledPlayerSkill = true; //默认可以点击技能项
CCMenu *mainMenu = CCMenu::create();
mainMenu->setTag(kRPGMapSkillMenuLayerTagMainMenu);
mainMenu->setAnchorPoint(CCPointZero);
@@ -156,7 +179,7 @@ CCTableViewCell* RPGMapSkillMenuLayer::tableCellAtIndex(CCTableView *tableView,
if(index >= this->m_skillList->count())
break;
RPGSkill *skillData = (RPGSkill*)this->m_skillList->objectAtIndex(index);
RPGSkillBtnData *skillData = (RPGSkillBtnData*)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));
@@ -165,13 +188,7 @@ CCTableViewCell* RPGMapSkillMenuLayer::tableCellAtIndex(CCTableView *tableView,
cell->addChild(skillBtn);
//如果是非回复类技能的话,则禁用点击
if(skillData->m_type != 2)
{
skillBtn->setTitleColorForState(ccc3(144, 144, 144), CCControlStateNormal);
skillBtn->setEnabled(false);
}
//MP不够的话,禁用点击
else if(!this->m_enabledPlayerSkill)
if(!skillData->m_enabled)
{
skillBtn->setTitleColorForState(ccc3(144, 144, 144), CCControlStateNormal);
skillBtn->setEnabled(false);
@@ -285,9 +302,6 @@ void RPGMapSkillMenuLayer::setPlayerSkill(int dataId)
{
this->m_selectedPlayerId = query.getIntField("id");
if(query.getFloatField("mp") <= 0 || query.getFloatField("hp") <= 0)
this->m_enabledPlayerSkill = false;
//数据处理部分
this->m_skillList->removeAllObjects();
@@ -311,12 +325,22 @@ void RPGMapSkillMenuLayer::setPlayerSkill(int dataId)
CppSQLite3Query skillQuery = this->m_db->execQuery(CCString::createWithFormat(SKILL_QUERY, wq.c_str())->getCString());
while(!skillQuery.eof())
{
RPGSkill *skill = RPGSkill::create();
RPGSkillBtnData *skill = RPGSkillBtnData::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");
skill->m_attr = skillQuery.getIntField("attr");
skill->m_enabled = true;
//不能使用技能的情况
if(query.getFloatField("mp") <= 0 || query.getFloatField("hp") <= 0)
skill->m_enabled = false;
else if(query.getFloatField("mp") < skill->m_MP)
skill->m_enabled = false;
else if(skill->m_type != 2)
skill->m_enabled = false;
this->m_skillList->addObject(skill);
@@ -341,7 +365,7 @@ void RPGMapSkillMenuLayer::onButton(cocos2d::CCObject *pSender, CCControlEvent e
for (int i = 0; i < this->m_skillList->count(); i++)
{
//判断选中道具
RPGSkill *skillData = (RPGSkill*)this->m_skillList->objectAtIndex(i);
RPGSkillBtnData *skillData = (RPGSkillBtnData*)this->m_skillList->objectAtIndex(i);
if(skillBtn->getTag() == skillData->m_dataId)
{
this->m_selectedSkill = skillData;
-1
View File
@@ -43,7 +43,6 @@ private:
bool m_isDefault; //是否为第一次进入技能界面,如果是的话就不播放效果音了
int m_selectedPlayerId; //选中上面的player的id
bool m_enabledPlayerSkill; //是否允许点击技能项,死亡状态、相关异常状态或MP为0时设置为false
RPGSkill* m_selectedSkill; //选中的技能
void onMenu(cocos2d::CCObject *pObject);
+1
View File
@@ -245,6 +245,7 @@ void RPGMapStatusMenuLayer::setStatusPlayer(int dataId)
skill->m_MP = skillQuery.getIntField("mp");
skill->m_skillAttack = skillQuery.getIntField("skill_attack");
skill->m_type = skillQuery.getIntField("type");
skill->m_attr = skillQuery.getIntField("attr");
this->m_skillList->addObject(skill);
+1
View File
@@ -164,6 +164,7 @@ bool RPGResultsLogic::useSkillCure(CppSQLite3DB *db, int srcPlayerId, int target
srcSkillData->m_MP = srcSkillQuery.getIntField("mp");
srcSkillData->m_name = srcSkillQuery.getStringField("name_cns");
srcSkillData->m_skillAttack = srcSkillQuery.getFloatField("skill_attack");
srcSkillData->m_attr = srcSkillQuery.getFloatField("attr");
srcSkillQuery.nextRow();
}
+1 -1
View File
@@ -9,7 +9,7 @@ ozg game — 单机版RPG(开发中…)
声音文件来自 http://www.66rpg.com/type.php?t=17
目前只在iOS平台下进行测试,战斗画面的技能、道具未完成。
目前只在iOS平台下进行测试,战斗系统的技能、道具未完成。
每次的更新完毕之后,数据结构都可能发生了变化,所以要把旧的数据库删除。
BIN
View File
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -251,6 +251,8 @@
89CB7D8118E9A47800A5921B /* map_menu3_style1.tmx in Resources */ = {isa = PBXBuildFile; fileRef = 89CB7D7E18E9A47800A5921B /* map_menu3_style1.tmx */; };
89CB7D8818E9A87700A5921B /* dialog_style1.tmx in Resources */ = {isa = PBXBuildFile; fileRef = 89CB7D8718E9A87700A5921B /* dialog_style1.tmx */; };
89CB7D8B18E9A8BF00A5921B /* RPGMapDialogLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 89CB7D8918E9A8BF00A5921B /* RPGMapDialogLayer.cpp */; };
89D2A12C190B431F00EDD50B /* skill_cure.plist in Resources */ = {isa = PBXBuildFile; fileRef = 89D2A12A190B431F00EDD50B /* skill_cure.plist */; };
89D2A12D190B431F00EDD50B /* skill_fire.plist in Resources */ = {isa = PBXBuildFile; fileRef = 89D2A12B190B431F00EDD50B /* skill_fire.plist */; };
89E63C7518ED83C900BDD04F /* actor5_0.png in Resources */ = {isa = PBXBuildFile; fileRef = 89E63C6B18ED83C900BDD04F /* actor5_0.png */; };
89E63C7618ED83C900BDD04F /* actor5_1.png in Resources */ = {isa = PBXBuildFile; fileRef = 89E63C6C18ED83C900BDD04F /* actor5_1.png */; };
89E63C7718ED83C900BDD04F /* actor5_2.png in Resources */ = {isa = PBXBuildFile; fileRef = 89E63C6D18ED83C900BDD04F /* actor5_2.png */; };
@@ -881,6 +883,8 @@
89CB7D8718E9A87700A5921B /* dialog_style1.tmx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = dialog_style1.tmx; sourceTree = "<group>"; };
89CB7D8918E9A8BF00A5921B /* RPGMapDialogLayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RPGMapDialogLayer.cpp; path = ../Classes/RPGMapDialogLayer.cpp; sourceTree = "<group>"; };
89CB7D8A18E9A8BF00A5921B /* RPGMapDialogLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RPGMapDialogLayer.h; path = ../Classes/RPGMapDialogLayer.h; sourceTree = "<group>"; };
89D2A12A190B431F00EDD50B /* skill_cure.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = skill_cure.plist; sourceTree = "<group>"; };
89D2A12B190B431F00EDD50B /* skill_fire.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = skill_fire.plist; sourceTree = "<group>"; };
89E63C6B18ED83C900BDD04F /* actor5_0.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = actor5_0.png; sourceTree = "<group>"; };
89E63C6C18ED83C900BDD04F /* actor5_1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = actor5_1.png; sourceTree = "<group>"; };
89E63C6D18ED83C900BDD04F /* actor5_2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = actor5_2.png; sourceTree = "<group>"; };
@@ -2422,6 +2426,8 @@
F293BC4615EB859D00256477 /* Resources */ = {
isa = PBXGroup;
children = (
89D2A12A190B431F00EDD50B /* skill_cure.plist */,
89D2A12B190B431F00EDD50B /* skill_fire.plist */,
893D34D21906B01100BFE2C5 /* attack_damage.plist */,
893D34D31906B01100BFE2C5 /* attack_damage.png */,
890F1B501902E284002F2769 /* attack1.ExportJson */,
@@ -2628,6 +2634,7 @@
89E63C7E18ED83C900BDD04F /* actor8_4.png in Resources */,
89E63C7C18ED83C900BDD04F /* actor8_2.png in Resources */,
89F5D12B18E7C5CC009D703C /* audio_start.mp3 in Resources */,
89D2A12C190B431F00EDD50B /* skill_cure.plist in Resources */,
15C1569A1683138E00D239F2 /* Default@2x.png in Resources */,
89E63C7718ED83C900BDD04F /* actor5_2.png in Resources */,
89CB7D7F18E9A47800A5921B /* map_menu1_style1.tmx in Resources */,
@@ -2670,6 +2677,7 @@
890F1B601902E284002F2769 /* attack10.plist in Resources */,
89E63C7618ED83C900BDD04F /* actor5_1.png in Resources */,
89F5D14918E7C5DD009D703C /* scene_loading_cns.plist in Resources */,
89D2A12D190B431F00EDD50B /* skill_fire.plist in Resources */,
89F5D11E18E7C5C0009D703C /* actor117.png in Resources */,
89F5D14A18E7C5DD009D703C /* scene_map_cns.plist in Resources */,
8960C17F18E7D0BD0075EF99 /* alert_style1.tmx in Resources */,