Commit 85b5a3ec by wuyang.zou

1 插件 点击屏幕左下角 插件logo,会把插件程序隐藏的bug;

2 将插件版本传递到Simpyony脚本中,用来做版本兼容
parent 93d9bb7f
......@@ -271,7 +271,7 @@ void FlowControl::_ClickOMSAssignArea()
void FlowControl::_ClickToLogin()
{
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---触发按钮点击事件:_ClickToLogin: m_bLoginResult:%1 --->>>>>]").arg(m_bLoginResult);
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---触发按钮点击事件:_ClickToLogin: m_bLoginResult:%1 --->>>>>]").arg(m_bLoginResult);
if(!m_bLoginResult)
{
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---触发按钮点击事件:FM外卖插件10s后再次尝试登陆--->>>>]");
......@@ -749,12 +749,17 @@ bool FlowControl::_Login()
emit setCashierInfo(m_cashierName);
//***********************登陆时获取门店的营业状态 begin ************************//
/*
m_eleStoreStatus = recvJson[JSON_ELESTORESTS].toInt();
m_modStoreStatus = recvJson[JSON_MODSTORESTS].toInt();
m_mopStoreStatus = recvJson[JSON_MOPSTORESTS].toInt();
QLOG_INFO()<<QString("[<<<<---FlowControl::_Login eleStoreStatus:%1;modStoreStatus:%2;mopStoreStatus:%3 --->>>>]").
arg(m_eleStoreStatus).arg(m_modStoreStatus).arg(m_mopStoreStatus);
emit doUpdateStoreStatus(m_eleStoreStatus,m_modStoreStatus,m_mopStoreStatus);
*/
m_eleStoreStatus = 0;
m_modStoreStatus = 0;
m_mopStoreStatus = 0;
//***********************登陆时获取门店的营业状态 end ************************//
m_bLoginResult= true;
m_clearTimer->start(1000*60*60*2); // 5分钟执行一次清理任务:正式上线需要两小时清理一次;
......@@ -986,17 +991,20 @@ bool FlowControl::_SendHeart()
//只有上一次心跳是异常:才根据心跳来展示门店营业状态 [数据延迟比较严重:同时也需要通过OMS推门店状态给插件]
if(m_bLastHeartIsError){
if( recvJson.contains(JSON_ELESTORESTS) ){
m_eleStoreStatus = recvJson[JSON_ELESTORESTS].toInt();
//m_eleStoreStatus = recvJson[JSON_ELESTORESTS].toInt();
m_eleStoreStatus = 0;
}
if( recvJson.contains(JSON_MODSTORESTS) ){
m_modStoreStatus = recvJson[JSON_MODSTORESTS].toInt();
//m_modStoreStatus = recvJson[JSON_MODSTORESTS].toInt();
m_modStoreStatus = 0;
}
if( recvJson.contains(JSON_MOPSTORESTS) ){
m_mopStoreStatus = recvJson[JSON_MOPSTORESTS].toInt();
//m_mopStoreStatus = recvJson[JSON_MOPSTORESTS].toInt();
m_mopStoreStatus = 0;
}
QLOG_INFO()<<QString("[<<<<---FlowControl::_SendHeart eleStoreStatus:%1;modStoreStatus:%2;mopStoreStatus:%3 --->>>>]").
arg(m_eleStoreStatus).arg(m_modStoreStatus).arg(m_mopStoreStatus);
emit doUpdateStoreStatus(m_eleStoreStatus,m_modStoreStatus,m_mopStoreStatus);
//emit doUpdateStoreStatus(m_eleStoreStatus,m_modStoreStatus,m_mopStoreStatus);
//还原并标记上一次心跳为正常状态;
m_bLastHeartIsError = false;
}
......@@ -2343,12 +2351,17 @@ bool FlowControl::_ResponseOMS12Request(const QJsonObject &content, QJsonObject
if(result){
if(!content["storeId"].toString().compare(m_storeId)) {
QLOG_INFO()<<"FlowControl::_ResponseOMS12Request:"<<content;
/*
m_eleStoreStatus = content[JSON_ELESTORESTS].toInt();
m_modStoreStatus = content[JSON_MODSTORESTS].toInt();
m_mopStoreStatus = content[JSON_MOPSTORESTS].toInt();
QLOG_INFO()<<QString("[<<<<---FlowControl::_ResponseOMS12Request eleStoreStatus:%1;modStoreStatus:%2;mopStoreStatus:%3 --->>>>]").
arg(m_eleStoreStatus).arg(m_modStoreStatus).arg(m_mopStoreStatus);
emit doUpdateStoreStatus(m_eleStoreStatus,m_modStoreStatus,m_mopStoreStatus);
*/
m_eleStoreStatus = 0;
m_modStoreStatus = 0;
m_mopStoreStatus = 0;
error=QString("success");
result = true;
} else {
......@@ -2721,8 +2734,9 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
cObj.insert("packDiscount",orderObject->packDiscount>0?orderObject->packDiscount:0);
cObj.insert("deliveryFree", orderObject->deliveryPrice>0?orderObject->deliveryPrice:0);
cObj.insert("deliveryDiscount", orderObject->deliveryDiscount>0?orderObject->deliveryDiscount:0);
cObj.insert("orderDiscount", orderObject->orderDiscount);
// 整单折扣在Simphony扩展程序中没有实际意义,目前使用此字段透传 插件的版本号信息;
QString pluginVersion = APP_VERSION ;
cObj.insert("orderDiscount", pluginVersion.remove(QChar('.'),Qt::CaseInsensitive).toInt() );
cObj.insert("waybillId", (orderObject->waybillId).length()?orderObject->waybillId:QString("0") );
cObj.insert("pos_sale_id", orderObject->posCheckNo);
cObj.insert("order_status",orderObject->orderStatus);//订单的状态
......@@ -2893,7 +2907,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
tCoupObj.insert("couponCode",coupon->code); //准确的券号码;例: 7019380051100056143 目前最长 19位长度;
tCoupObj.insert("couponType",coupon->couponType);
tCoupObj.insert("payMethodId",coupon->payMethodId); //券支付方式: 15纸质卷 16电子卷 ;
tCoupObj.insert("consumeFactAmount",coupon->consumeFactAmount/100); //券实际支付金额 (单位:元);
tCoupObj.insert("consumeFactAmount",coupon->consumeFactAmount); //券实际支付金额 (单位:分);
coupons.push_back(tCoupObj);
}
/**********************************************************/
......@@ -2985,7 +2999,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
}
tPaymentObj.insert("couponType",QString("0"));
tPaymentObj.insert("payMethodId",payment->payMethodId); //券支付方式: 15纸质卷 16电子卷 ;
tPaymentObj.insert("consumeFactAmount",payment->paymentMoney/100); //券实际支付金额 (单位:元);
tPaymentObj.insert("consumeFactAmount",payment->paymentMoney); //券实际支付金额 (单位:分);
payments.push_back(tPaymentObj);
}
//**********************************整合多支付方式信息-end*****************************************//
......@@ -3058,7 +3072,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
//配送费是0元时:需录入配送费[非-MOP(销售退货),非-MOP测试; 预约实物不能录入配送费 && 预约配送费需要入机];
} else if(0 == orderObject->deliveryPrice && 18!=tempOrderType && 19!=tempOrderType && 20!=tempOrderType && 21!=tempOrderType && 22!=tempOrderType && 25!=tempOrderType) {
QJsonObject tDeliveryFeeZoreObj;
tDeliveryFeeZoreObj.insert("consume_num", 1);
tDeliveryFeeZoreObj.insert("consume_num", 9);
tDeliveryFeeZoreObj.insert("pid","6000101"); //配送费SKU;
tDeliveryFeeZoreObj.insert("original_price", 0);
products.push_back(tDeliveryFeeZoreObj);
......
......@@ -96,6 +96,7 @@ void OrderObject::FromJson(const QJsonObject &json)
coupObject->consumeFactAmount = 0;
coupObject->storeChannel = false;
coupObject->couponName="";
coupObject->discount="";
coupObject->couponSeq=QString('0');
coupObject->FetchDataFromJson(coupJson);
coupList.append(coupObject);
......@@ -155,8 +156,7 @@ QString OrderObject::getChannelName()
QString OrderObject::getOrderStatusDec()
{
switch(orderStatus)
{
switch(orderStatus) {
case 1:return QString::fromLocal8Bit("下单待支付");
case 2:return QString::fromLocal8Bit("已支付");
case 3:return QString::fromLocal8Bit("接单");
......
......@@ -2,7 +2,6 @@
#include "ui_floatForm.h"
#include "windows.h"
#include <QPixmap>
#include <QLabel>
#include "DTools/configManger.h"
#include "preDefine.h"
#include "QsLog.h"
......@@ -20,11 +19,12 @@ FloatForm::FloatForm(QWidget *parent) :
m_bReminding = false;
m_bStoreStatus = true; //程序启动后,初始化为开店状态;
/*
QPixmap imgNormal(":float_normal.png"); m_imgNormalSize = imgNormal.size();
*/
QPixmap imgStoreBusiStat(":StoreBusinessStatus.png");
m_imgStoreBusiStatSize = imgStoreBusiStat.size();
QPixmap imgNormal(":float_normal.png");
m_imgNormalSize = imgNormal.size();
QPixmap imgStoreClose(":float_storeCloseStatus.png");
m_imgStoreCloseSize = imgStoreClose.size();
QPixmap imgRemind(":float_remind.png");
m_imgRemindSize = imgRemind.size();
......@@ -57,19 +57,20 @@ void FloatForm::mouseMoveEvent(QMouseEvent *event)
void FloatForm::mousePressEvent(QMouseEvent *event)
{
if (event->button()==Qt::LeftButton) {
if (event->button()==Qt::LeftButton)
{
m_bMousePress = true;
m_lastMousePos = event->globalPos();
m_absMove = QPoint(0,0);
}
/*
if(event->button()==Qt::RightButton) {
sInfoThread.terminate();
workThread.terminate();
qApp->exit(-1);
QProcess::startDetached(qApp->applicationFilePath(), QStringList(qApp->applicationFilePath()));
}
*/
// if(event->button()==Qt::RightButton)
// {
// sInfoThread.terminate();
// workThread.terminate();
// qApp->exit(-1);
// QProcess::startDetached(qApp->applicationFilePath(), QStringList(qApp->applicationFilePath()));
// }
}
void FloatForm::mouseReleaseEvent(QMouseEvent *event)
......@@ -108,13 +109,16 @@ void FloatForm::_Init()
{
setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::Tool);
setAttribute(Qt::WA_TranslucentBackground);
//根据门店的开店/关店 状态来显示不同的图片;
setFixedSize(m_imgStoreBusiStatSize);
setStyleSheet("#floatWdg{ border-image: url(:StoreBusinessStatus.png); }");
//初始化悬浮框 多渠道门店营业状态;
RefreshStoreStatus();
if(m_bStoreStatus) {
setFixedSize(m_imgNormalSize);
setStyleSheet("#floatWdg{ border-image: url(:float_normal.png); }");
}else{
setFixedSize(m_imgStoreCloseSize);
setStyleSheet("#floatWdg{ border-image: url(:float_storeCloseStatus.png); }");
}
//setFixedSize(m_imgNormalSize);
//setStyleSheet("#floatWdg{ border-image: url(:float_normal.png); }");
QPoint point = ConfigManger::GetInstance().GetFloatInitPostion();
QLOG_INFO()<<QString::fromLocal8Bit("Float From Init Postion(x:%1,y:%2)").arg(point.x()).arg(point.y());
int nWidth = GetSystemMetrics(SM_CXSCREEN) - 200;
......@@ -138,9 +142,8 @@ void FloatForm::_Blink()
m_animation.setEndValue(0);
m_animation.start();
loop.exec();
//this->setFixedSize(m_imgRemindSize);
//ui->floatWdg->setStyleSheet("#floatWdg{ border-image: url(:float_remind.png);}");
this->setFixedSize(m_imgRemindSize);
ui->floatWdg->setStyleSheet("#floatWdg{ border-image: url(:float_remind.png);}");
m_animation.setStartValue(0);
m_animation.setEndValue(1);
m_animation.start();
......@@ -150,12 +153,13 @@ void FloatForm::_Blink()
m_animation.start();
loop.exec();
/*
if(m_bStoreStatus) {
this->setFixedSize(m_imgNormalSize);
ui->floatWdg->setStyleSheet("#floatWdg{ border-image: url(:float_normal.png);}");
}*/
}else{
this->setFixedSize(m_imgStoreCloseSize);
ui->floatWdg->setStyleSheet("#floatWdg{ border-image: url(:float_storeCloseStatus.png);}");
}
m_animation.setStartValue(0);
m_animation.setEndValue(1);
m_animation.start();
......@@ -193,7 +197,6 @@ void FloatForm::onStartRemind(int type)
if(!m_bReminding) {
m_bReminding = true;
RefreshOrderManagerStatus(1);
}
//10s后触发将闪烁提醒标志(m_bReminding)重置为False事件;
QTimer::singleShot(1000*10, this, &FloatForm::onStopRemind);
......@@ -205,7 +208,6 @@ void FloatForm::onStartRemind(int type)
void FloatForm::onStopRemind()
{
m_bReminding = false;
RefreshOrderManagerStatus(0);
}
void FloatForm::onShow()
......@@ -232,69 +234,15 @@ void FloatForm::onUnLockFloatForm(){
void FloatForm::onUpdateStoreStatus(int eleStoreStatus, int modStoreStatus,int mopStoreStatus){
QLOG_INFO()<<QString("[<<<----FloatForm::onUpdateStoreStatus:eleStoreStatus, modStoreStatus, mopStoreStatus: --->>>>]")<<eleStoreStatus <<modStoreStatus <<mopStoreStatus ;
RefreshStoreStatus(eleStoreStatus, modStoreStatus,mopStoreStatus);
}
void FloatForm::RefreshStoreStatus(int eleStoreStatus, int modStoreStatus,int mopStoreStatus){
QLOG_INFO()<<QString("[<<<----FloatForm::RefreshStoreStatus:--->>>>]");
//准备MOD门店营业状态Label;
this->ui->Mod1Lable->resize(56, 14); //图片源文件大小
this->ui->Mod1Lable->move(10, 40); //左边距10像素;
this->ui->Mod1Lable->setPixmap(QPixmap(":ModTitle.png"));
this->ui->Mod2Lable->resize(44, 20); //图片源文件大小
this->ui->Mod2Lable->move(70, 36); // 在 Mod1Lable 基础上 x+4; y-4;
if(1 == modStoreStatus){
this->ui->Mod2Lable->setPixmap(QPixmap(":StoreOn.png"));
}else if(2 == modStoreStatus){
this->ui->Mod2Lable->setPixmap(QPixmap(":StoreOff.png"));
}else {
this->ui->Mod2Lable->setPixmap(QPixmap(":StoreDef.png"));
}
//准备Eleme门店营业状态Label;
this->ui->Eleme1Lable->resize(43, 14); //图片源文件大小
this->ui->Eleme1Lable->move(10, 66); //左边距10像素;高度距离上面一个标签 高度 + 10 像素间隔;
this->ui->Eleme1Lable->setPixmap(QPixmap(":ElemeTitle.png"));
this->ui->Eleme2Lable->resize(44, 20); //图片源文件大小
this->ui->Eleme2Lable->move(70, 62); // x 与 Mod1Lable 对齐; y-4;
if(1 == eleStoreStatus){
this->ui->Eleme2Lable->setPixmap(QPixmap(":StoreOn.png"));
}else if(2 == eleStoreStatus){
this->ui->Eleme2Lable->setPixmap(QPixmap(":StoreOff.png"));
} else {
this->ui->Eleme2Lable->setPixmap(QPixmap(":StoreDef.png"));
}
//准备Mop门店营业状态Label;
this->ui->Mop1Lable->resize(56, 14); //图片源文件大小
this->ui->Mop1Lable->move(10, 92); //左边距10像素;高度距离上面一个标签 高度 + 10 像素间隔;
this->ui->Mop1Lable->setPixmap(QPixmap(":MopTitle.png"));
this->ui->Mop2Lable->resize(44, 20); //图片源文件大小
this->ui->Mop2Lable->move(70, 88); // x 与 Mod1Lable 对齐; y-4;
if(1 == mopStoreStatus){
this->ui->Mop2Lable->setPixmap(QPixmap(":StoreOn.png"));
} else if(2 == mopStoreStatus) {
this->ui->Mop2Lable->setPixmap(QPixmap(":StoreOff.png"));
} else {
this->ui->Mop2Lable->setPixmap(QPixmap(":StoreDef.png"));
}
//准备订单管理状态Label;
this->ui->OrderManagerLable->resize(120, 36); //图片源文件大小; x缩小10像素;
this->ui->OrderManagerLable->move(2, 118); //左边距0像素;高度距离上面一个标签 高度 + 10 像素间隔;
this->ui->OrderManagerLable->setPixmap(QPixmap(":NomalOrderManager.png"));
}
void FloatForm::RefreshOrderManagerStatus(int existNewOrder){
QLOG_INFO()<<QString("[<<<----FloatForm::RefreshOrderManagerStatus:%1--->>>>]").arg(existNewOrder);
if(existNewOrder){ //有新订单;
this->ui->OrderManagerLable->resize(120, 36); //图片源文件大小; x缩小10像素;
this->ui->OrderManagerLable->move(2, 118); //左边距0像素;高度距离上面一个标签 高度 + 10 像素间隔;
this->ui->OrderManagerLable->setPixmap(QPixmap(":ComeNewOrder.png"));
} else { //无新订单;
this->ui->OrderManagerLable->resize(120, 36); //图片源文件大小; x缩小10像素;
this->ui->OrderManagerLable->move(2, 118); //左边距0像素;高度距离上面一个标签 高度 + 10 像素间隔;
this->ui->OrderManagerLable->setPixmap(QPixmap(":NomalOrderManager.png"));
/*
m_bStoreStatus = flag;
if(m_bStoreStatus) {
this->setFixedSize(m_imgNormalSize);
ui->floatWdg->setStyleSheet("#floatWdg{ border-image: url(:float_normal.png);}");
}else{
this->setFixedSize(m_imgStoreCloseSize);
ui->floatWdg->setStyleSheet("#floatWdg{ border-image: url(:float_storeCloseStatus.png);}");
}
*/
}
......@@ -39,10 +39,12 @@ private:
// 记录门店营业状态
bool m_bStoreStatus;
// 记录正常状态图片的大小
QSize m_imgNormalSize;
// 记录提示状态图片的大小
QSize m_imgRemindSize;
// 三个渠道的门店营业状态;
QSize m_imgStoreBusiStatSize;
// 记录门店关店状态图片的大小[和正常状态大小一样,此时主要用表现门店的关店状态:切换了图片]
QSize m_imgStoreCloseSize;
// 记录是否正在提示
bool m_bReminding;
// 闪烁动画
......@@ -115,18 +117,6 @@ public slots:
* */
void onUpdateStoreStatus(int eleStoreStatus, int modStoreStatus,int mopStoreStatus);
/* 功能:更新多渠道门店营业状态显示;
* 参数:1 [ele开关店状态] 2[MOD开关店状态] 3[MOP开关店状态]
* 返回:NULL
* */
void RefreshStoreStatus(int eleStoreStatus=0, int modStoreStatus=0,int mopStoreStatus=0);
/* 功能:新订单到POS更新悬浮框显示;
* 参数:1 [是否存在新订单]
* 返回:NULL
* */
void RefreshOrderManagerStatus(int existNewOrder=0);
};
#endif // FLOATFORM_H
......@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>158</width>
<height>204</height>
<width>171</width>
<height>141</height>
</rect>
</property>
<property name="windowTitle">
......@@ -18,108 +18,7 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="floatWdg" native="true">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<widget class="QLabel" name="Mod1Lable">
<property name="geometry">
<rect>
<x>0</x>
<y>30</y>
<width>61</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="Mod2Lable">
<property name="geometry">
<rect>
<x>60</x>
<y>30</y>
<width>61</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="Eleme1Lable">
<property name="geometry">
<rect>
<x>0</x>
<y>70</y>
<width>61</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="Eleme2Lable">
<property name="geometry">
<rect>
<x>60</x>
<y>70</y>
<width>61</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="Mop1Lable">
<property name="geometry">
<rect>
<x>0</x>
<y>100</y>
<width>51</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="Mop2Lable">
<property name="geometry">
<rect>
<x>60</x>
<y>90</y>
<width>51</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="OrderManagerLable">
<property name="geometry">
<rect>
<x>0</x>
<y>121</y>
<width>121</width>
<height>41</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
</widget>
<widget class="QWidget" name="floatWdg" native="true"/>
</item>
</layout>
</widget>
......
......@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico"
#endif
VS_VERSION_INFO VERSIONINFO
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
FILEVERSION 2,2019,729,1
PRODUCTVERSION 2,2019,729,1
FILEVERSION 2,2019,916,1
PRODUCTVERSION 2,2019,916,1
//*************************************************************************//
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
......@@ -31,8 +31,8 @@ VS_VERSION_INFO VERSIONINFO
VALUE "OriginalFilename", "fmTakeout.exe"
VALUE "ProductName", "Delivery Order Plugin"
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
VALUE "ProductVersion", "2.2019.729.1"
VALUE "FileVersion", "2.2019.729.1"
VALUE "ProductVersion", "2.2019.916.1"
VALUE "FileVersion", "2.2019.916.1"
//*************************************************************************//
END
END
......
......@@ -188,9 +188,13 @@ void MainForm::_onTableWidgetHeaderClick(int index){
void MainForm::onSetCurrentTime()
{
if(m_raiseIndex++>10)
{
if(m_raiseIndex++>10) {
m_raiseIndex=0;
//当点击Windows系统 底部应用任务logo时,会触发将应用最小化动作;故需要将该程序恢复正常状态显示;
if (windowState() == Qt::WindowMinimized) {
QLOG_INFO() << QString("[<<<<---MainForm::onSetCurrentTime: windowState: --->>>>]")<<windowState();
setWindowState(Qt::WindowNoState);
}
raise();
}
ui->mainSlabTime->setText(QDateTime::currentDateTime().toString(QString::fromLocal8Bit("yyyy年MM月dd日 hh:mm:ss")));
......
......@@ -21,11 +21,13 @@
//#define APP_VERSION "2.2019.422.1"
//#define APP_VERSION "2.2019.520.1"
//#define APP_VERSION "2.2019.528.1"
#define APP_VERSION "2.2019.729.1"
//#define APP_VERSION "2.2019.729.1"
//#define APP_VERSION "2.2019.815.1"
#define APP_VERSION "2.2019.916.1"
//修正版本号时,切记修正 FmTakeout.rc 中的版本号
#define SERVER_PASSWORD "posoperator@freemud.cn"
#define CONFIG_NAME "config.ini"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment