Prechádzať zdrojové kódy

添加了一些代码

MoYuWang 9 mesiacov pred
rodič
commit
55c66e05b0

+ 20 - 0
Classes/IAP/Conf/IAPConf.hpp

@@ -49,6 +49,26 @@ typedef struct {
             return 0.0;
         }
     }
+    
+    // 获取礼包类型排序权重
+    int getTypeValue() const{
+        
+        if(type == "panel")return 1;    // 常规礼包
+        if(type == "bar")return 0;      // 金币礼包
+        return 1000;    // 其他礼包默认为置顶
+    }
+    
+    // 获取礼包内包含金币数量
+    int getCoinNumber() const{
+        int num = 0;
+        for(const auto area : areas){
+            for(int i = 0;i < area.size(); i++){
+                if(area[i].name != "coin")continue;
+                num += stoi(area[i].count);
+            }
+        }
+        return num;
+    }
 
     std::string serialize() const {
         std::string ret;

+ 7 - 7
Classes/IAP/IAPCtlShop.cpp

@@ -53,19 +53,19 @@ int IAPCtlShop::getDeviceLevel(){
 
 
 bool IAPCtlShop::addAPlacement(const IAPPlacement &plInfo){
-    bool ans = false;
-    
-    
-    if(ans)_placements[plInfo.id] = plInfo;
-    return ans;
+    return IAPCtlShopUI::getInstance()->addAPlacement(plInfo);
 }
 
 void IAPCtlShop::removePlacement(const std::string &id){
-    _placements.erase(id);
+    IAPCtlShopUI::getInstance()->removePlacement(id);
+}
+
+void IAPCtlShop::clearPlacement(){
+    IAPCtlShopUI::getInstance()->clearPlacement();
 }
 
 size_t IAPCtlShop::getPlacementCount(){
-    return _placements.size();
+    return IAPCtlShopUI::getInstance()->getPlacementCount();
 }
 
 void IAPCtlShop::showInNode(cocos2d::Node *pParent, ShopRequirement &requirement){

+ 3 - 2
Classes/IAP/IAPCtlShop.hpp

@@ -54,6 +54,9 @@ public:
     // id 卡片id(添加版位时的id)
     void removePlacement(const std::string& id);
     
+    // 清空活动
+    void clearPlacement();
+    
     // 获取活动礼包总数
     size_t getPlacementCount();
     
@@ -67,7 +70,6 @@ public:
     // plIds 需要的版位id
     void showPlacementsInNode(cocos2d::Node* pParent, const vector<std::string>& plIds);
     
-    
     // 获取用户类型
     UserBuyType getUserBuyType();
     
@@ -88,7 +90,6 @@ private:
     IAPCtlShopUI* _shopUI;
     IAPDelegate* _delegate;
     
-    std::map<std::string, IAPPlacement> _placements;
     int _level;
 };
 

+ 62 - 0
Classes/IAP/Shop/IAPCtlShopActItem.cpp

@@ -0,0 +1,62 @@
+//
+//  IAPCtlShopActItem.cpp
+//  demo
+//
+//  Created by Red_mini on 2024/10/22.
+//
+
+#include "IAPCtlShopActItem.hpp"
+
+#include "IAPProcess.hpp"
+#include "IAPCtlShopUI.hpp"
+
+
+
+IAPCtlShopActItem* IAPCtlShopActItem::create(const iap::IAPPlacement& placement) {
+    IAPCtlShopActItem* csi = new IAPCtlShopActItem(placement);
+    csi->_placement = placement;
+    csi->autorelease();
+    csi->retain();
+    return csi;
+}
+
+IAPCtlShopActItem::IAPCtlShopActItem(const iap::IAPPlacement& placement)
+: _placement(placement) {
+    
+}
+
+IAPCtlShopActItem::~IAPCtlShopActItem() {
+    
+}
+
+cocos2d::Size IAPCtlShopActItem::getSize() {
+    return cocos2d::Size(584,280);
+}
+
+void IAPCtlShopActItem::onEnter(){
+    
+}
+
+bool IAPCtlShopActItem::initUI(){
+    
+    
+    return true;
+}
+
+void IAPCtlShopActItem::onNotifyDevelopment(const redutils::ReboltNotifyData& data) {
+    if (data.notify == "") {
+        
+    } else if (data.notify == "点击购买") {
+        
+    }
+}
+
+
+void IAPCtlShopActItem::accepted() {
+    // 退出购买界面,展示成功界面
+    IAPCtlShopUI::getInstance()->quit();
+}
+
+void IAPCtlShopActItem::rejected() {
+    
+}

+ 46 - 0
Classes/IAP/Shop/IAPCtlShopActItem.hpp

@@ -0,0 +1,46 @@
+//
+//  IAPCtlShopActItem.hpp
+//  demo
+//
+//  Created by Red_mini on 2024/10/22.
+//
+
+#ifndef IAPCtlShopActItem_hpp
+#define IAPCtlShopActItem_hpp
+
+#include <stdio.h>
+#include "cocos2d.h"
+#include "RUReboltLayer.h"
+#include "IAPConf.hpp"
+
+#include "IAPDefine.hpp"
+
+
+class IAPCtlShopActItem : public cocos2d::Node
+{
+public:
+    static IAPCtlShopActItem* create(const iap::IAPPlacement& placement);
+    
+    cocos2d::Size getSize();
+    
+    virtual void onEnter() override;
+    
+private:
+    IAPCtlShopActItem(const iap::IAPPlacement& placement);
+    ~IAPCtlShopActItem();
+    
+    bool initUI();
+    
+    void onNotifyDevelopment(const redutils::ReboltNotifyData&);
+    
+    void accepted();
+    void rejected();
+    
+    
+private:
+    
+    iap::IAPPlacement _placement;
+};
+
+
+#endif /* IAPCtlShopActItem_hpp */

+ 61 - 44
Classes/IAP/Shop/IAPCtlShopUI.cpp

@@ -86,7 +86,25 @@ bool IAPCtlShopUI::create(Node* pNode, IAPConf* cfg, iap::ShopRequirement& requi
     return true;
 }
 
+bool IAPCtlShopUI::addAPlacement(const iap::IAPPlacement &plInfo){
+    // 如果该活动ID存在,则添加失败
+    if(_placements.count(plInfo.id) != 0)return false;
+    
+    _placements[plInfo.id] = plInfo;
+    return true;
+}
 
+void IAPCtlShopUI::removePlacement(const std::string &id){
+    _placements.erase(id);
+}
+
+void IAPCtlShopUI::clearPlacement(){
+    _placements.clear();
+}
+
+size_t IAPCtlShopUI::getPlacementCount(){
+    return _placements.size();
+}
 
 void IAPCtlShopUI::_onNotifyDevelopment(const redutils::ReboltNotifyData& data) {
     if (data.notify == "绑定显示区域") {
@@ -176,8 +194,40 @@ void IAPCtlShopUI::constructShopItem(bool bShowAll) {
     }
     
     // 展示活动商品
-    
-    
+    if(_placements.size() != 0){
+        // 展示活动
+        for(const auto& placement : _placements){
+            if(bigPackCount <= 0)break;
+            
+            bool bNeedAnim = height <= size.height;
+            Node* nd = Node::create();
+            nd->setCascadeOpacityEnabled(true);
+            nd->setCascadeColorEnabled(true);
+            
+            // 创建活动卡片
+            auto cards = placement.second.cards;
+            for(const auto& card : cards){
+                auto si = card->create();
+                auto sz = cocos2d::Size(584,280);
+                cocos2d::Vec2 pos(size.width/2.0, sz.height/2.0);
+                nd->addChild(si);
+                si->setPosition(bNeedAnim ? pos+offset : pos);
+                _tableData.insertCell(index++, nd);
+                _allSizes.push_back(sz);
+                height += sz.height;
+                
+                if (bNeedAnim) {
+                    // 加入动画
+                    auto d = DelayTime::create(delayIdx*dur/8.0);
+                    auto m = EaseBackOut::create(MoveBy::create(dur, cocos2d::Vec2(-offset.x, offset.y)));
+                    si->runAction(Sequence::create(d, m, NULL));
+                    delayIdx ++;
+                }
+            }
+            
+            bigPackCount--;
+        }
+    }
     // 判断是否还有版位
     if(bigPackCount != 0 || smallPackCount != 0 || bShowAll){
         // 显示常规商品
@@ -288,26 +338,15 @@ void IAPCtlShopUI::constructShopItem(bool bShowAll) {
 void IAPCtlShopUI::filterGoods(iap::ShopRequirement &requirement){
     std::map<int, bool> m;
     int cnt = 0;
-    for(const auto& goodsInfo : _goodsInfo){
-        for(const auto area : goodsInfo.areas){
-            bool flag = false;
-            for(int i = 0;i < area.size(); i++){
-                if(area[i].name != "coin")continue;
-                if(std::stoi(area[i].count) >= requirement.coinsMin){
-                    m[cnt] = true;
-                    flag = true;
-                    break;
-                }else{
-                    m[cnt] = false;
-                    flag = true;
-                    break;
-                }
-            }
-            if(flag)break;
+    for(const auto& goodInfo : _goodsInfo){
+        if(goodInfo.getCoinNumber() >= requirement.coinsMin){
+            m[cnt] = true;
         }
         cnt++;
     }
+    
     std::vector<GoodsInfo> newGoodsInfo;
+    
     // 添加符合条件的礼包
     for(int i = 0;i < _goodsInfo.size(); i++){
         if(m[i]){
@@ -320,38 +359,16 @@ void IAPCtlShopUI::filterGoods(iap::ShopRequirement &requirement){
 //            newGoodsInfo.push_back(_goodsInfo[i]);
 //        }
 //    }
+    
     _goodsInfo = newGoodsInfo;
 }
 
 void IAPCtlShopUI::sortGoods(bool flag){
     
     sort(_goodsInfo.begin(), _goodsInfo.end(), [flag](GoodsInfo a, GoodsInfo b){
-        if(a.type != b.type){
-            if(a.type == "panel"){
-                return true;
-            }else if(b.type == "panel"){
-                return false;
-            }
-        }
-        float val_a,val_b;
-        
-        std::regex re(R"(\d+(\.\d{1,2})?)");  // 匹配整数或最多两位小数的数字
-        std::smatch match;
-        
-        if (std::regex_search(a.cost, match, re)) {
-            val_a = stof(match[0]);    // 提取价格
-        } else {
-            log("IAPUserData::getUserBuyType : 转换失败");
-        }
-        
-        if (std::regex_search(b.cost, match, re)) {
-            val_b = stof(match[0]);    // 提取价格
-        } else {
-            log("IAPUserData::getUserBuyType : 转换失败");
-        }
-        
-        if(flag) return val_a < val_b;
-        else return val_a > val_b;
+        if(a.getTypeValue() != b.getTypeValue())return a.getTypeValue() > b.getTypeValue();
+        if(flag) return a.getCostNumber() < b.getCostNumber();
+        else return a.getCostNumber() > b.getCostNumber();
     });
     
 }

+ 16 - 0
Classes/IAP/Shop/IAPCtlShopUI.hpp

@@ -26,6 +26,20 @@ public:
     // 在指定节点内创建
     bool create(cocos2d::Node* pNode, IAPConf* cfg, iap::ShopRequirement& requirement,int placementId = 1);
     
+    // 添加一个商店版位
+    // id 卡片id(添加版位时的id)
+    bool addAPlacement(const iap::IAPPlacement& plInfo);
+    
+    // 删除一个商店版位
+    // id 卡片id(添加版位时的id)
+    void removePlacement(const std::string& id);
+    
+    // 清空活动
+    void clearPlacement();
+    
+    // 获取活动礼包总数
+    size_t getPlacementCount();
+    
     // 设置退出时的回调
     void setCBWhileQuit(std::function<void()> cb) { _cb = cb; }
     
@@ -65,6 +79,8 @@ private:
     bool _bUIShowing = false;
     std::function<void()> _cb = nullptr;
     int _placementId = 0;
+    
+    std::map<std::string, iap::IAPPlacement> _placements;
 };
 
 #endif /* IAPCtlShopUI_hpp */

+ 6 - 0
Classes/TestScene.cpp

@@ -34,6 +34,12 @@ bool TestScene::init(){
     _iapShop = iap::IAPCtlShop::createWith();
     _iapShop->init(cfgFN);
     
+//    iap::IAPPlacement plInfo;
+//    plInfo.id = "1";
+//    iap::IAPPlacement plInfo2;
+//    plInfo2.id = "2";
+//    _iapShop->addAPlacement(plInfo);
+//    _iapShop->addAPlacement(plInfo2);
     // 在此处添加场景初始化的代码,比如创建背景、角色、UI等
     createBoard();
     schedule(CC_SCHEDULE_SELECTOR(TestScene::update), 1.0f);

+ 20 - 0
Resources/resources/ccb/purchaseBanner/内购版位_浮层_提示文本.rebolt

@@ -0,0 +1,20 @@
+{
+    "CustomFunc": {
+    },
+    "CustomList": {
+    },
+    "CustomMessage": {
+        "Hello Red": 1
+    },
+    "CustomTestFunc": {
+    },
+    "CustomVar": {
+    },
+    "DisPlayName": "内购版位_浮层_提示文本",
+    "RedFileList": {
+    },
+    "RedNoteInfo": {
+    },
+    "TreeList": {
+    }
+}

+ 18 - 0
Resources/resources/ccbi/Rebolt_BT/47u8CF4b7ExC.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<behavior agenttype="red::RedBehaviacTree" name="47u8CF4b7ExC" version="5">
+    <node class="Sequence" id="0">
+        <node class="Assignment" id="1">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="const string &quot;点击&quot;"/>
+        </node>
+        <node class="Action" id="2">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_0&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="3">
+            <property Method="Self.red::RedBehaviacTree::notifyDevelopment(&quot;iJFIhJ1CcenC&quot;,&quot;__ttbt__localVariableIndex_0&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+    </node>
+</behavior>

+ 25 - 0
Resources/resources/ccbi/Rebolt_BT/DHiZdq8R9NJE.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<behavior agenttype="red::RedBehaviacTree" name="DHiZdq8R9NJE" version="5">
+    <node class="Sequence" id="0">
+        <node class="Action" id="1">
+            <property Method="Self.red::RedBehaviacTree::hiddenNode(&quot;SPWEtCPTvmWk&quot;,&quot;gfmzUNinN6nv&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="2">
+            <property Method="Self.red::RedBehaviacTree::showNode(&quot;Cl4JyrIchSn9&quot;,&quot;ZrHJ8aPW3Po0&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="3">
+            <property Method="Self.red::RedBehaviacTree::hiddenNode(&quot;nosK71EFv1Cm&quot;,&quot;reuiItxHwWoF&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="4">
+            <property Method="Self.red::RedBehaviacTree::showNode(&quot;wawT3o6e6Sxu&quot;,&quot;d1CwURTZbvDq&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="5">
+            <property Method="Self.red::RedBehaviacTree::playSubredTimeLine(&quot;FK3irXdE5oB3&quot;,&quot;3O2vuVSyXQZK&quot;,&quot;1&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+    </node>
+</behavior>

+ 187 - 0
Resources/resources/ccbi/Rebolt_BT/H5d5TSmrDQQF.xml

@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<behavior agenttype="red::RedBehaviacTree" name="H5d5TSmrDQQF" version="5">
+    <node class="Sequence" id="0">
+        <node class="Action" id="1">
+            <property Method="Self.red::RedBehaviacTree::showSelf(&quot;TFf1YKDUrRwo&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="2">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-标题&quot;)"/>
+        </node>
+        <node class="Action" id="3">
+            <property Method="Self.red::RedBehaviacTree::setLabelTitle(&quot;zlFqtu6HY2sO&quot;,&quot;Oe3w0CezESSu&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="4">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-背景图片&quot;)"/>
+        </node>
+        <node class="Action" id="5">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_0&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="6">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-图集名称&quot;)"/>
+        </node>
+        <node class="Action" id="7">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_1&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="8">
+            <property Method="Self.red::RedBehaviacTree::setSpritePlist(&quot;dL80G81iiaTg&quot;,&quot;xW9r01Pdjnrx&quot;,&quot;__ttbt__localVariableIndex_1&quot;,&quot;__ttbt__localVariableIndex_0&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="9">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-折扣数字&quot;)"/>
+        </node>
+        <node class="Action" id="10">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_2&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="11">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="const string &quot;%&quot;"/>
+        </node>
+        <node class="Action" id="12">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_3&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="13">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::stringLink(&quot;__ttbt__localVariableIndex_2&quot;,&quot;__ttbt__localVariableIndex_3&quot;)"/>
+        </node>
+        <node class="Action" id="14">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_4&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="15">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getLocalTreeString(&quot;__ttbt__localVariableIndex_4&quot;)"/>
+        </node>
+        <node class="Action" id="16">
+            <property Method="Self.red::RedBehaviacTree::setLabelTitle(&quot;MkDaWoLrcYuw&quot;,&quot;fdCsMtP886mU&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="17">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-价格数字&quot;)"/>
+        </node>
+        <node class="Action" id="18">
+            <property Method="Self.red::RedBehaviacTree::setLabelTitle(&quot;DKKaP2dAO5mY&quot;,&quot;pvoMYdZT1fAe&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="19">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-物品1数量&quot;)"/>
+        </node>
+        <node class="Action" id="20">
+            <property Method="Self.red::RedBehaviacTree::setLabelTitle(&quot;hKefXb5V9qIq&quot;,&quot;dBuCiQq3LxLS&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="21">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-物品1图片&quot;)"/>
+        </node>
+        <node class="Action" id="22">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_5&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="23">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-图集名称&quot;)"/>
+        </node>
+        <node class="Action" id="24">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_6&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="25">
+            <property Method="Self.red::RedBehaviacTree::setSpritePlist(&quot;fZhBYYfLVgLD&quot;,&quot;AR6w7spK7bvQ&quot;,&quot;__ttbt__localVariableIndex_6&quot;,&quot;__ttbt__localVariableIndex_5&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="26">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-物品2数量&quot;)"/>
+        </node>
+        <node class="Action" id="27">
+            <property Method="Self.red::RedBehaviacTree::setLabelTitle(&quot;6igZ0EHTegDo&quot;,&quot;WvkqYstac1XW&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="28">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-物品2图片&quot;)"/>
+        </node>
+        <node class="Action" id="29">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_7&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="30">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-图集名称&quot;)"/>
+        </node>
+        <node class="Action" id="31">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_8&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="32">
+            <property Method="Self.red::RedBehaviacTree::setSpritePlist(&quot;VHdFAw34pon0&quot;,&quot;4FJctAvhD8rB&quot;,&quot;__ttbt__localVariableIndex_8&quot;,&quot;__ttbt__localVariableIndex_7&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="33">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-物品3数量&quot;)"/>
+        </node>
+        <node class="Action" id="34">
+            <property Method="Self.red::RedBehaviacTree::setLabelTitle(&quot;31una8dvlxuE&quot;,&quot;AfFWiZLTFC2w&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="35">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-物品3图片&quot;)"/>
+        </node>
+        <node class="Action" id="36">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_9&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="37">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-图集名称&quot;)"/>
+        </node>
+        <node class="Action" id="38">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_10&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="39">
+            <property Method="Self.red::RedBehaviacTree::setSpritePlist(&quot;xHVnl0200Sre&quot;,&quot;1XAeZ1gaj77q&quot;,&quot;__ttbt__localVariableIndex_10&quot;,&quot;__ttbt__localVariableIndex_9&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="40">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-物品3描述&quot;)"/>
+        </node>
+        <node class="Action" id="41">
+            <property Method="Self.red::RedBehaviacTree::setLabelTitle(&quot;XoCQwbybSzWy&quot;,&quot;oDhgZVSk1BHx&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+    </node>
+</behavior>

+ 29 - 0
Resources/resources/ccbi/Rebolt_BT/Ln31DKgaQ0pa.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<behavior agenttype="red::RedBehaviacTree" name="Ln31DKgaQ0pa" version="5">
+    <node class="Sequence" id="0">
+        <node class="Action" id="1">
+            <property Method="Self.red::RedBehaviacTree::setButtonEnable(&quot;ZKISbaRL6k4u&quot;,&quot;gfmzUNinN6nv&quot;,false)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="2">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="const string &quot;点击&quot;"/>
+        </node>
+        <node class="Action" id="3">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_0&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="4">
+            <property Method="Self.red::RedBehaviacTree::notifyDevelopment(&quot;y7SONbX1NfRw&quot;,&quot;__ttbt__localVariableIndex_0&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Wait" id="5">
+            <property Time="const float 4"/>
+        </node>
+        <node class="Action" id="6">
+            <property Method="Self.red::RedBehaviacTree::setButtonEnable(&quot;vwnICxra3zyg&quot;,&quot;gfmzUNinN6nv&quot;,true)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+    </node>
+</behavior>

+ 49 - 0
Resources/resources/ccbi/Rebolt_BT/Pntl3xMUwx4H.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<behavior agenttype="red::RedBehaviacTree" name="Pntl3xMUwx4H" version="5">
+    <node class="Sequence" id="0">
+        <node class="Action" id="1">
+            <property Method="Self.red::RedBehaviacTree::showSelf(&quot;6KjoEKDPQ7uL&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="2">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-标题&quot;)"/>
+        </node>
+        <node class="Action" id="3">
+            <property Method="Self.red::RedBehaviacTree::setLabelTitle(&quot;Fps1xmHtYHWE&quot;,&quot;5JBcuMJJv3BO&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="4">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-背景图片&quot;)"/>
+        </node>
+        <node class="Action" id="5">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_0&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="6">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-图集名称&quot;)"/>
+        </node>
+        <node class="Action" id="7">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_1&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="8">
+            <property Method="Self.red::RedBehaviacTree::setSpritePlist(&quot;1TNKXRXecs0R&quot;,&quot;ODRj6CO6tT7K&quot;,&quot;__ttbt__localVariableIndex_1&quot;,&quot;__ttbt__localVariableIndex_0&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="9">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-按钮文字&quot;)"/>
+        </node>
+        <node class="Action" id="10">
+            <property Method="Self.red::RedBehaviacTree::setLabelTitle(&quot;2m59uJPAoBxS&quot;,&quot;8sfHApKaoRj6&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+    </node>
+</behavior>

+ 29 - 0
Resources/resources/ccbi/Rebolt_BT/UJ2ai1oZCZ9S.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<behavior agenttype="red::RedBehaviacTree" name="UJ2ai1oZCZ9S" version="5">
+    <node class="Sequence" id="0">
+        <node class="Action" id="1">
+            <property Method="Self.red::RedBehaviacTree::setButtonEnable(&quot;DT9FzuK4C2ak&quot;,&quot;KeB4aObHkVVj&quot;,false)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="2">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="const string &quot;点击&quot;"/>
+        </node>
+        <node class="Action" id="3">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_0&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="4">
+            <property Method="Self.red::RedBehaviacTree::notifyDevelopment(&quot;KJ5BCQWdFlY8&quot;,&quot;__ttbt__localVariableIndex_0&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Wait" id="5">
+            <property Time="const float 4"/>
+        </node>
+        <node class="Action" id="6">
+            <property Method="Self.red::RedBehaviacTree::setButtonEnable(&quot;N3UkC4FIfJyG&quot;,&quot;KeB4aObHkVVj&quot;,true)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+    </node>
+</behavior>

+ 13 - 0
Resources/resources/ccbi/Rebolt_BT/XU7pcIrSc8zo.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<behavior agenttype="red::RedBehaviacTree" name="XU7pcIrSc8zo" version="5">
+    <node class="Sequence" id="0">
+        <node class="Action" id="1">
+            <property Method="Self.red::RedBehaviacTree::showNode(&quot;Wjq04KkgsNDd&quot;,&quot;pHbKaUjdDWFe&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="2">
+            <property Method="Self.red::RedBehaviacTree::hiddenNode(&quot;FsV78Xmaq9El&quot;,&quot;u0JGbbzBiTTy&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+    </node>
+</behavior>

+ 29 - 0
Resources/resources/ccbi/Rebolt_BT/cv4MomxkTyzm.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<behavior agenttype="red::RedBehaviacTree" name="cv4MomxkTyzm" version="5">
+    <node class="Sequence" id="0">
+        <node class="Action" id="1">
+            <property Method="Self.red::RedBehaviacTree::setButtonEnable(&quot;UpJVCm6fJZIB&quot;,&quot;Ndu8YnW3urV7&quot;,false)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="2">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="const string &quot;点击&quot;"/>
+        </node>
+        <node class="Action" id="3">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_0&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="4">
+            <property Method="Self.red::RedBehaviacTree::notifyDevelopment(&quot;A6raPlm4FibV&quot;,&quot;__ttbt__localVariableIndex_0&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Wait" id="5">
+            <property Time="const float 4"/>
+        </node>
+        <node class="Action" id="6">
+            <property Method="Self.red::RedBehaviacTree::setButtonEnable(&quot;M4VeBG6QWykN&quot;,&quot;Ndu8YnW3urV7&quot;,true)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+    </node>
+</behavior>

+ 194 - 0
Resources/resources/ccbi/Rebolt_BT/eepztPzn4YgT.xml

@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<behavior agenttype="red::RedBehaviacTree" name="eepztPzn4YgT" version="5">
+    <node class="Sequence" id="0">
+        <node class="Action" id="1">
+            <property Method="Self.red::RedBehaviacTree::showSelf(&quot;zqF70ky4vW69&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="2">
+            <property Method="Self.red::RedBehaviacTree::playSubredTimeLine(&quot;QnWiER60vUSw&quot;,&quot;3O2vuVSyXQZK&quot;,&quot;0&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="3">
+            <property Method="Self.red::RedBehaviacTree::showNode(&quot;zLi9ZGfCStSI&quot;,&quot;gfmzUNinN6nv&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="4">
+            <property Method="Self.red::RedBehaviacTree::hiddenNode(&quot;v5ujPTeEMRVv&quot;,&quot;ZrHJ8aPW3Po0&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="5">
+            <property Method="Self.red::RedBehaviacTree::showNode(&quot;QhizuAs61Mrf&quot;,&quot;3O2vuVSyXQZK&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="6">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-标题&quot;)"/>
+        </node>
+        <node class="Action" id="7">
+            <property Method="Self.red::RedBehaviacTree::setLabelTitle(&quot;7DZh1A0POhX9&quot;,&quot;9EvfthzbI9SQ&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="8">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-背景图片&quot;)"/>
+        </node>
+        <node class="Action" id="9">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_0&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="10">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-图集名称&quot;)"/>
+        </node>
+        <node class="Action" id="11">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_1&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="12">
+            <property Method="Self.red::RedBehaviacTree::setSpritePlist(&quot;N3TZ4YDvszar&quot;,&quot;aOimOkzJ0DFf&quot;,&quot;__ttbt__localVariableIndex_1&quot;,&quot;__ttbt__localVariableIndex_0&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="13">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-折扣数字&quot;)"/>
+        </node>
+        <node class="Action" id="14">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_2&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="15">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="const string &quot;%&quot;"/>
+        </node>
+        <node class="Action" id="16">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_3&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="17">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::stringLink(&quot;__ttbt__localVariableIndex_2&quot;,&quot;__ttbt__localVariableIndex_3&quot;)"/>
+        </node>
+        <node class="Action" id="18">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_4&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="19">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getLocalTreeString(&quot;__ttbt__localVariableIndex_4&quot;)"/>
+        </node>
+        <node class="Action" id="20">
+            <property Method="Self.red::RedBehaviacTree::setLabelTitle(&quot;iYaELgiT46hC&quot;,&quot;RAc44hL8TmWO&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="21">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-价格数字&quot;)"/>
+        </node>
+        <node class="Action" id="22">
+            <property Method="Self.red::RedBehaviacTree::setLabelTitle(&quot;X8S3CotyLROQ&quot;,&quot;YtXp0F7NDFyB&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="23">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-价格数字&quot;)"/>
+        </node>
+        <node class="Action" id="24">
+            <property Method="Self.red::RedBehaviacTree::setLabelTitle(&quot;wHmiqmxUqgeN&quot;,&quot;i10Fql8kLrRm&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="25">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-物品1图片&quot;)"/>
+        </node>
+        <node class="Action" id="26">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_5&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="27">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-图集名称&quot;)"/>
+        </node>
+        <node class="Action" id="28">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_6&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="29">
+            <property Method="Self.red::RedBehaviacTree::setSpritePlist(&quot;Gh0BT01ngdvB&quot;,&quot;9rZ7j6DFZQ9P&quot;,&quot;__ttbt__localVariableIndex_6&quot;,&quot;__ttbt__localVariableIndex_5&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="30">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-物品1数量&quot;)"/>
+        </node>
+        <node class="Action" id="31">
+            <property Method="Self.red::RedBehaviacTree::setLabelTitle(&quot;LMEC0pZmbrZ4&quot;,&quot;Yi4bbbJRRZcG&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="32">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-物品2图片&quot;)"/>
+        </node>
+        <node class="Action" id="33">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_7&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="34">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-图集名称&quot;)"/>
+        </node>
+        <node class="Action" id="35">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_8&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="36">
+            <property Method="Self.red::RedBehaviacTree::setSpritePlist(&quot;oym6R8ohkVCq&quot;,&quot;93xFObFBl4ae&quot;,&quot;__ttbt__localVariableIndex_8&quot;,&quot;__ttbt__localVariableIndex_7&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="37">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="Self.red::RedBehaviacTree::getCoderString(&quot;P-物品2数量&quot;)"/>
+        </node>
+        <node class="Action" id="38">
+            <property Method="Self.red::RedBehaviacTree::setLabelTitle(&quot;3wDKn9azPgPG&quot;,&quot;HpCatsfEnrbf&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="39">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="const string &quot;绑定倒计时&quot;"/>
+        </node>
+        <node class="Action" id="40">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_9&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Assignment" id="41">
+            <property CastRight="false"/>
+            <property Opl="string Self.red::RedBehaviacTree::temporaryVariablesString"/>
+            <property Opr="const string &quot;&quot;"/>
+        </node>
+        <node class="Action" id="42">
+            <property Method="Self.red::RedBehaviacTree::storageTemporaryVariablesString(&quot;__ttbt__localVariableIndex_10&quot;,string Self.red::RedBehaviacTree::temporaryVariablesString)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="43">
+            <property Method="Self.red::RedBehaviacTree::notifyDevelopmentWithParamAndNode(&quot;fVO21VZSY3Vg&quot;,&quot;__ttbt__localVariableIndex_9&quot;,&quot;__ttbt__localVariableIndex_10&quot;,&quot;reuiItxHwWoF&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+    </node>
+</behavior>

+ 13 - 0
Resources/resources/ccbi/Rebolt_BT/yca3YNIrq3dE.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<behavior agenttype="red::RedBehaviacTree" name="yca3YNIrq3dE" version="5">
+    <node class="Sequence" id="0">
+        <node class="Action" id="1">
+            <property Method="Self.red::RedBehaviacTree::hiddenNode(&quot;AleRe2Dt9Fkb&quot;,&quot;k2geugvdKVYh&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+        <node class="Action" id="2">
+            <property Method="Self.red::RedBehaviacTree::showNode(&quot;q4FasTGA7yGj&quot;,&quot;46ZR3hUNPPZA&quot;)"/>
+            <property ResultOption="BT_SUCCESS"/>
+        </node>
+    </node>
+</behavior>

BIN
Resources/resources/ccbi/内购版位_活动模版.redream


BIN
Resources/resources/ccbi/内购版位_浮层_提示文本.redream


BIN
Resources/resources/ccbi/内购版位_礼包模版.redream


BIN
Resources/resources/ccbi/内购版位_计时模版.redream


+ 8 - 0
proj.ios_mac/demo.xcodeproj/project.pbxproj

@@ -51,6 +51,8 @@
 		8262943E1AAF051F00CB7CF7 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8262943D1AAF051F00CB7CF7 /* Security.framework */; };
 		BF0045D6B142DBAA2FDD68D6 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E9E14807A8C8CC4A87B4DCD8 /* WebKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
 		BF1C47F01293687400B63C5D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF1C47EA1293683800B63C5D /* QuartzCore.framework */; };
+		C17946172CC7502600779B63 /* IAPCtlShopActItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C17946152CC7502600779B63 /* IAPCtlShopActItem.cpp */; };
+		C17946182CC7502600779B63 /* IAPCtlShopActItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C17946152CC7502600779B63 /* IAPCtlShopActItem.cpp */; };
 		C17ACCBC2CB903BA0072A711 /* TestScene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C17ACCBB2CB903BA0072A711 /* TestScene.cpp */; };
 		C17ACCBD2CB903BA0072A711 /* TestScene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C17ACCBB2CB903BA0072A711 /* TestScene.cpp */; };
 		D44C620C132DFF330009C878 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D44C620B132DFF330009C878 /* OpenAL.framework */; };
@@ -190,6 +192,8 @@
 		5087E78A17EB975400C73F5D /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
 		8262943D1AAF051F00CB7CF7 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
 		BF1C47EA1293683800B63C5D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+		C17946152CC7502600779B63 /* IAPCtlShopActItem.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = IAPCtlShopActItem.cpp; sourceTree = "<group>"; };
+		C17946162CC7502600779B63 /* IAPCtlShopActItem.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = IAPCtlShopActItem.hpp; sourceTree = "<group>"; };
 		C17ACCBB2CB903BA0072A711 /* TestScene.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TestScene.cpp; sourceTree = "<group>"; };
 		C17ACCC52CB904460072A711 /* TestScene.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TestScene.h; sourceTree = "<group>"; };
 		D44C620B132DFF330009C878 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
@@ -380,6 +384,8 @@
 				2F15C5E12CB8F65A0057855D /* IAPCtlShopUI.cpp */,
 				2F15C5E22CB8F65A0057855D /* IAPCtlShopItem.hpp */,
 				2F15C5E52CB8F65A0057855D /* IAPCtlShopItem.cpp */,
+				C17946162CC7502600779B63 /* IAPCtlShopActItem.hpp */,
+				C17946152CC7502600779B63 /* IAPCtlShopActItem.cpp */,
 			);
 			path = Shop;
 			sourceTree = "<group>";
@@ -714,6 +720,7 @@
 			files = (
 				2F15E2422CB52B0F00082BF8 /* IAPUtils.cpp in Sources */,
 				46880B8819C43A87006E1F66 /* AppDelegate.cpp in Sources */,
+				C17946172CC7502600779B63 /* IAPCtlShopActItem.cpp in Sources */,
 				E4D223422BD667D4006F1F8D /* AdUtilsVideo.cpp in Sources */,
 				2F15E2402CB52B0F00082BF8 /* IAPProductInfo.cpp in Sources */,
 				E4D223482BD667E8006F1F8D /* AdUtils.cpp in Sources */,
@@ -740,6 +747,7 @@
 				2F15C5F92CB8F65A0057855D /* IAPDelegate.cpp in Sources */,
 				E4D223492BD667E8006F1F8D /* AdUtils.cpp in Sources */,
 				2F15C5F72CB8F65A0057855D /* IAPCtlShopItem.cpp in Sources */,
+				C17946182CC7502600779B63 /* IAPCtlShopActItem.cpp in Sources */,
 				E4D223502BD66CDE006F1F8D /* RedWise.cpp in Sources */,
 				184505681E2E5BD700EF4807 /* main.cpp in Sources */,
 				2F15E2432CB52B0F00082BF8 /* IAPUtils.cpp in Sources */,