设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2694|回复: 1
打印 上一主题 下一主题

[原创发布] 【2016.09.09】对话翻译

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
帖子
1516
跳转到指定楼层
1
发表于 2016-9-9 18:33:22 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 汪汪 于 2016-9-9 18:45 编辑

无用产物
学习事件页的产物
只是基础的一些小功能,还不能用的样子
就是先放这.


* DHFY.saveTR()
* 生成翻译文件
* 对于显示文本,
* 相同的设置的显示文本,整合为一个
* 翻译时会自动换页,也可以用 数字 101 来换页
*
*
* DHFY.saveTR2Data(la) //la为语言
* 把当前语言通过翻译插件转换成对应的数据文件
*
* 额,目前是很鸡肋的东西

JAVASCRIPT 代码复制下载
  1. //=============================================================================
  2. // DHFY.js
  3. //=============================================================================
  4.  
  5. /*:
  6.  * @plugindesc 对话翻译
  7.  * @author wangwang
  8.  *
  9.  * @help
  10.  * DHFY.saveTR()
  11.  * 生成翻译文件
  12.  * 对于显示文本,
  13.  * 相同的设置的显示文本,整合为一个
  14.  * 翻译时会自动换页,也可以用 数字 101 来换页
  15.  *
  16.  *
  17.  * DHFY.saveTR2Data(la) //la为语言
  18.  * 把当前语言通过翻译插件转换成对应的数据文件
  19.  *
  20.  * 额,目前是很鸡肋的东西
  21.  *
  22.  * */
  23.  
  24. DHFY = {}
  25. DHFY.temp = {}
  26. DHFY.trtemp = {}
  27.  
  28. DHFY._defaultlaunge = "cn"
  29. DHFY._launge = "cn"
  30.  
  31.  
  32. /**生成翻译文件 */
  33. DHFY.saveTR = function () {
  34.     for (var i = 0; i < DataManager._databaseFiles.length; i++) {
  35.         var name = DataManager._databaseFiles[i].name;
  36.         var src = DataManager._databaseFiles[i].src;
  37.         DHFY.saveTRFileData(src, name);
  38.     }
  39. };
  40.  
  41.  
  42. DHFY.saveTRMapData = function (arr) {
  43.     //如果 (地图id > 0)
  44.     for (var i = 0; i < arr.length; i++) {
  45.         var map = arr[i]
  46.         if (map) {
  47.             var mapId = map.id
  48.             // 文件名 = 'Map%1.json' 替换 (mapId 填充0(3位)  )
  49.             var filename = 'Map%1.json'.format(mapId.padZero(3));
  50.             //读取数据文件(数据地图 ,文件名)
  51.             DHFY.saveTRFileData(filename, "$dataMap");
  52.         }
  53.     }
  54. };
  55.  
  56. DHFY.saveTRFileData = function (src, type) {
  57.     var xhr = new XMLHttpRequest();
  58.     var url = 'data/' + src;
  59.     xhr.open('GET', url);
  60.     xhr.overrideMimeType('application/json');
  61.     //网址请求 当读取
  62.     xhr.onload = function () {
  63.         //如果 网址请求 状态 < 400
  64.         if (xhr.status < 400) {
  65.             var data = JSON.parse(xhr.responseText)
  66.             if (type == "$dataMapInfos") {
  67.                 DHFY.saveTRMapData(data)
  68.             }
  69.             var obj = {}
  70.             console.log(type)
  71.             obj[DHFY._defaultlaunge] = DHFY.read(data, type)
  72.             DHFY.SaveJson(obj, 'tr_' + src, "data")
  73.         }
  74.     };
  75.     //网址请求 当错误
  76.     xhr.onerror = function () {
  77.     };
  78.     //网址请求 发出
  79.     xhr.send();
  80. }
  81.  
  82.  
  83.  
  84.  
  85. /**通过翻译文件保存为数据*/
  86. DHFY.saveTR2Data = function (la) {
  87.     var la = la || this._defaultlaunge
  88.     for (var i = 0; i < DataManager._databaseFiles.length; i++) {
  89.         var src = DataManager._databaseFiles[i].src;
  90.         DHFY.saveTR2FileData(src, src , la);
  91.     }
  92. };
  93.  
  94.  
  95. DHFY.saveTR2MapData = function (arr , la) {
  96.     for (var i = 0; i < arr.length; i++) {
  97.         var map = arr[i]
  98.         if (map) {
  99.             var mapId = map.id
  100.             var filename = 'Map%1.json'.format(mapId.padZero(3));
  101.             DHFY.saveTR2FileData(filename, filename , la);
  102.         }
  103.     }
  104. };
  105. DHFY.saveTR2FileData = function (name, src , la) {
  106.     DHFY.saveTR2FileData2(name, src , la)
  107.     var xhr = new XMLHttpRequest();
  108.     var url = 'data/' + src;
  109.     xhr.open('GET', url);
  110.     xhr.overrideMimeType('application/json');
  111.     xhr.onload = function () {
  112.         if (xhr.status < 400) {
  113.             DHFY.temp[name] = JSON.parse(xhr.responseText)
  114.             if (name == "MapInfos.json") {
  115.                 DHFY.saveTR2MapData(DHFY.temp[name],  la)
  116.             }
  117.             DHFY.onLoad2(name, src,  la)
  118.         }
  119.     };
  120.     xhr.onerror = function () {
  121.  
  122.     };
  123.     DHFY.temp[name] = null
  124.     xhr.send();
  125. };
  126.  
  127. DHFY.saveTR2FileData2 = function (name, src , la) {
  128.     var xhr = new XMLHttpRequest();
  129.     var url = 'data/' + "tr_" + src;
  130.     xhr.open('GET', url);
  131.     xhr.overrideMimeType('application/json');
  132.     xhr.onload = function () {
  133.         if (xhr.status < 400) {
  134.             DHFY.trtemp[name] = JSON.parse(xhr.responseText)
  135.             DHFY.onLoad2(name)
  136.         }
  137.     };
  138.     xhr.onerror = function () {
  139.         DHFY.trtemp[name] = {}
  140.     };
  141.     DHFY.trtemp[name] = null;
  142.     xhr.send();
  143. };
  144.  
  145. DHFY.onLoad2 = function (name, src ,la) {
  146.     if (DHFY.trtemp[name] && DHFY.temp[name]) {
  147.         if (la !== DHFY._defaultlaunge) {
  148.             if (DHFY.trtemp[name][la]) {
  149.                 var obj = DHFY.trtemp[name][la]
  150.                 var data = DHFY.deepCopyChange(DHFY.temp[name], obj)
  151.                 DHFY.SaveJson(data, src, la + "_data")
  152.                 return
  153.             }
  154.         }
  155.         var data = DHFY.temp[name]
  156.         DHFY.SaveJson(data, src, la + "_data")
  157.     }
  158. }
  159.  
  160.  
  161.  
  162. DataManager.loadDataFile = function (name, src) {
  163.     DHFY.loadDataFile(name, src)
  164. };
  165.  
  166. DHFY.loadDataFile = function (name, src) {
  167.     DHFY.loadTRFile(name, src)
  168.     var xhr = new XMLHttpRequest();
  169.     var url = 'data/' + src;
  170.     xhr.open('GET', url);
  171.     xhr.overrideMimeType('application/json');
  172.     xhr.onload = function () {
  173.         if (xhr.status < 400) {
  174.             DHFY.temp[name] = JSON.parse(xhr.responseText)
  175.             DHFY.onLoad(name)
  176.         }
  177.     };
  178.     xhr.onerror = function () {
  179.         DataManager._errorUrl = DataManager._errorUrl || url;
  180.     };
  181.  
  182.     DHFY.temp[name] = null
  183.     window[name] = null;
  184.     xhr.send();
  185. };
  186.  
  187. DHFY.loadTRFile = function (name, src) {
  188.     var xhr = new XMLHttpRequest();
  189.     var url = 'data/' + "tr_" + src;
  190.     xhr.open('GET', url);
  191.     xhr.overrideMimeType('application/json');
  192.     xhr.onload = function () {
  193.         if (xhr.status < 400) {
  194.             DHFY.trtemp[name] = JSON.parse(xhr.responseText)
  195.             DHFY.onLoad(name)
  196.         }
  197.     };
  198.     xhr.onerror = function () {
  199.         DHFY.trtemp[name] = {}
  200.     };
  201.     DHFY.trtemp[name] = null;
  202.     xhr.send();
  203. };
  204.  
  205.  
  206.  
  207. /**当读取 */
  208. DHFY.onLoad = function (name) {
  209.     if (DHFY.trtemp[name] && DHFY.temp[name]) {
  210.         if (DHFY._launge !== DHFY._defaultlaunge) {
  211.             var la = DHFY._launge
  212.             if (DHFY.trtemp[name][la]) {
  213.                 var obj = DHFY.trtemp[name][la]
  214.                 var data = DHFY.deepCopyChange(DHFY.temp[name], obj)
  215.                 window[name] = data;
  216.                 DataManager.onLoad(window[name]);
  217.                 return
  218.             }
  219.         }
  220.         var data = DHFY.temp[name]
  221.         window[name] = data;
  222.         DataManager.onLoad(window[name]);
  223.     }
  224. }
  225.  
  226.  
  227. /**拷贝 */
  228. DHFY.deepCopy = function (that) {
  229.     var that = that
  230.     var obj, i;
  231.     if (typeof (that) === "object") {
  232.         if (that === null) {
  233.             obj = null;
  234.         } else if (Array.isArray(that)) {
  235.             obj = [];
  236.             for (var i = 0; i < that.length; i++) {
  237.                 obj.push(DHFY.deepCopy(that[i]));
  238.             }
  239.         } else {
  240.             obj = {}
  241.             for (i in that) {
  242.                 obj[i] = DHFY.deepCopy(that[i])
  243.             }
  244.         }
  245.     } else {
  246.         obj = that
  247.     }
  248.     return obj;
  249. };
  250. /**读取 */
  251. DHFY.read = function (data, type) {
  252.     var obj = {}
  253.     obj.type = type
  254.     obj.item = DHFY.itemRead(data, type)
  255.     if (type === "$dataMap") {
  256.         obj.eventsitem = DHFY.itemRead(data.events, "$dataEvent")
  257.     }
  258.     if (type === "$dataMap") {
  259.         obj.events = DHFY.eventsRead(data.events)
  260.     } else if (type === "$dataTroops") {
  261.         obj.events = DHFY.eventsRead(data)
  262.     } else if (type === "$dataCommonEvents") {
  263.         obj.pages = DHFY.eventPagesRead(data)
  264.     }
  265.     return obj
  266. }
  267. /**拷贝改变 */
  268. DHFY.deepCopyChange = function (data, obj) {
  269.     var data2 = DHFY.deepCopy(data)
  270.     DHFY.change(data2, obj)
  271.     return data2
  272. }
  273. /**项目改变 */
  274. DHFY.change = function (data, obj) {
  275.     if (data && obj && obj.type) {
  276.         var type = obj.type
  277.         DHFY.itemChange(obj.item, data)
  278.         if (type === "$dataMap") {
  279.             DHFY.itemChange(obj.eventsitem, data.events, "$dataEvent")
  280.         }
  281.         if (type === "$dataMap") {
  282.             DHFY.eventsChange(obj.events, data.events)
  283.         } else if (type === "$dataTroops") {
  284.             DHFY.eventsChange(obj.events, data)
  285.         } else if (type === "$dataCommonEvents") {
  286.             DHFY.eventPagesChange(obj.pages, data)
  287.         }
  288.     }
  289.     return data
  290. }
  291. /**项目保存内容 */
  292. DHFY.itemReadKey = function (type) {
  293.     var obj = {}
  294.     switch (type) {
  295.         case "$dataActors":
  296.             var obj = { "name": "哈罗尔德", "nickname": "", "note": "", "profile": "" }
  297.             break
  298.         case "$dataAnimations":
  299.             var obj = { "name": "打击/物理" }
  300.             break
  301.         case "$dataArmors":
  302.             var obj = { "description": "", "name": "盾", "note": "" }
  303.             break
  304.         case "$dataClasses":
  305.             var obj = { "name": "勇者", "note": "" }
  306.             break
  307.         case "$dataCommonEvents":
  308.             var obj = { "name": "" }
  309.             break
  310.         case "$dataEnemies":
  311.             var obj = { "name": "蝙蝠", "note": "" }
  312.             break
  313.         case "$dataItems":
  314.             var obj = { "description": "", "name": "恢复药水", "note": "" }
  315.             break
  316.         case "$dataMap":
  317.             var obj = { "displayName": "", "note": "" }
  318.             break
  319.         case "$dataEvent":
  320.             var obj = { "name": "EV001", "note": "" }
  321.             break
  322.         case "$dataMapInfos":
  323.             var obj = {}
  324.             break
  325.         case "$dataSkills":
  326.             var obj = { "description": "", "message1": "的攻击!", "message2": "", "name": "攻击", "note": "当选择[攻击]指令时,\n将使用1号技能。" }
  327.             break
  328.         case "$dataStates":
  329.             var obj = { "message1": "倒下了!", "message2": "倒下了!", "message3": "", "message4": "站了起来!", "name": "战斗不能", "note": "当HP为0时,\n将会自动附加1号状态。" }
  330.             break
  331.         case "$dataSystem":
  332.             var obj = { "armorTypes": [], "currencyUnit": "G", "elements": [], "equipTypes": [], "gameTitle": "Project7", "skillTypes": [], "terms": {}, "weaponTypes": [] }
  333.             break
  334.         case "$dataTilesets":
  335.             var obj = { "name": "世界地图", "note": "" }
  336.             break
  337.         case "$dataTroops":
  338.             var obj = { "name": "蝙蝠*2" }
  339.             break
  340.         case "$dataWeapons":
  341.             var obj = { "description": "", "name": "剑", "note": "" }
  342.             break
  343.     }
  344.     return obj
  345. }
  346.  
  347.  
  348.  
  349.  
  350. /**项目读取 */
  351. DHFY.itemRead = function (data, type) {
  352.     var obj = null
  353.     if (type === "$dataSystem" || type === "$dataMap") {
  354.         if (data) {
  355.             var keylist = DHFY.itemReadKey(type)
  356.             var da = data
  357.             if (da) {
  358.                 for (var key in keylist) {
  359.                     if (key in da) {
  360.                         obj = obj || {}
  361.                         obj[key] = da[key]
  362.                     }
  363.                 }
  364.             }
  365.         }
  366.     } else {
  367.         if (data && Array.isArray(data)) {
  368.             var keylist = DHFY.itemReadKey(type)
  369.             for (var di = 0; di < data.length; di++) {
  370.                 var da = data[di]
  371.                 if (da) {
  372.                     for (var key in keylist) {
  373.                         if (key in da) {
  374.                             obj = obj || {}
  375.                             obj[di] = obj[di] || {}
  376.                             obj[di][key] = da[key]
  377.                         }
  378.                     }
  379.                 }
  380.             }
  381.         }
  382.     }
  383.     return obj
  384. }
  385.  
  386. /**项目改变 */
  387. DHFY.itemChange = function (obj, data, type) {
  388.     if (type === "$dataSystem" || type === "$dataMap") {
  389.         if (obj && data) {
  390.             for (var key in obj) {
  391.                 if (key in data) {
  392.                     data[key] = obj[key]
  393.                 }
  394.             }
  395.         }
  396.     } else {
  397.         if (obj && data && Array.isArray(data)) {
  398.             for (var di in obj) {
  399.                 var obj2 = obj[di]
  400.                 var da = data[di]
  401.                 if (obj2 && da) {
  402.                     for (var key in obj2) {
  403.                         if (key in da) {
  404.                             da[key] = obj2[key]
  405.                         }
  406.                     }
  407.                 }
  408.             }
  409.         }
  410.     }
  411.     return data
  412. }
  413.  
  414.  
  415. /**事件组读取 */
  416. DHFY.eventsRead = function (data) {
  417.     var obj = null
  418.     if (data && Array.isArray(data)) {
  419.         var events = data
  420.         for (var ei = 0; ei < events.length; ei++) {
  421.             var event = events[ei]
  422.             if (event && event.pages) {
  423.                 var pages = this.eventPagesRead(event.pages)
  424.                 if (pages) {
  425.                     obj = obj || {}
  426.                     obj[ei] = pages
  427.                 }
  428.             }
  429.         }
  430.     }
  431.     return obj
  432. }
  433.  
  434.  
  435.  
  436. /**事件组改变 */
  437. DHFY.eventsChange = function (obj, data) {
  438.     if (obj && data) {
  439.         var events = data
  440.         for (var ei in obj) {
  441.             event = events[ei]
  442.             if (event && event.pages) {
  443.                 event.pages = this.eventPagesChange(obj[ei], event.pages)
  444.             }
  445.         }
  446.     }
  447.     return data
  448. }
  449.  
  450. /**事件页读取 */
  451. DHFY.eventPagesRead = function (data) {
  452.     var obj = null
  453.     if (Array.isArray(data)) {
  454.         var pages = data
  455.         for (var pi = 0; pi < pages.length; pi++) {
  456.             var page = pages[pi]
  457.             if (page) {
  458.                 var list = page.list
  459.                 for (var li = 0; li < list.length; li++) {
  460.                     var com = list[li]
  461.                     var code = com.code
  462.                     if (code === 101 || code === 102) {
  463.                         var addid = 0
  464.                         if (code === 101) {
  465.                             var cc = { "code": 101, "indent": com.indent }
  466.                             var add = []
  467.                             while (true) {
  468.                                 var newcom = list[li + addid + 1]
  469.                                 if (newcom && newcom.code === 401 && newcom.indent === com.indent) {
  470.                                     add = add || []
  471.                                     add.push(newcom.parameters[0])
  472.                                 } else if (newcom && newcom.code === 101 &&
  473.                                     newcom.indent === com.indent &&
  474.                                     newcom.parameters[0] == com.parameters[0] &&
  475.                                     newcom.parameters[1] == com.parameters[1] &&
  476.                                     newcom.parameters[2] == com.parameters[2] &&
  477.                                     newcom.parameters[3] == com.parameters[3]) {
  478.                                     add.push(101)
  479.                                 } else {
  480.                                     break
  481.                                 }
  482.                                 addid++
  483.                             }
  484.                             cc.text = add
  485.                         }
  486.                         if (code === 102) {
  487.                             var cc =  { "code": 102 , "indent":com.indent ,"text": com.parameters[0] }  
  488.                         }
  489.                         obj = obj || {}
  490.                         obj[pi] = obj[pi] || {}
  491.                         obj[pi][li] = cc
  492.                         li += addid
  493.                     }
  494.                 }
  495.             }
  496.  
  497.         }
  498.     }
  499.     return obj
  500. }
  501.  
  502. /**事件页改变 */
  503. DHFY.eventPagesChange = function (obj, data) {
  504.     if (obj && data && Array.isArray(data)) {
  505.         var pages = data
  506.         for (var pi in obj) {
  507.             page = pages[pi]
  508.             if (page && page.list) {
  509.                 var list = page.list
  510.                 var temp401 = 0
  511.                 var temp402 = []
  512.                 for (var li in obj[pi]) {
  513.                     var cc = obj[pi][li]
  514.                     var li2 = li * 1 + temp401
  515.                     var com = list[li2]
  516.                     if (cc.code === 101 && com.code === cc.code && com.indent == cc.indent) {
  517.                         var add = cc.text
  518.                         while (true) {
  519.                             var newcom = list[li2 + 1]
  520.                             if (newcom && newcom.code === 401 && newcom.indent === cc.indent) {
  521.                                 list.splice(li2 + 1, 1)
  522.                                 temp401--
  523.                             } else if (newcom && newcom.code === 101 &&
  524.                                 newcom.indent === com.indent &&
  525.                                 newcom.parameters[0] == com.parameters[0] &&
  526.                                 newcom.parameters[1] == com.parameters[1] &&
  527.                                 newcom.parameters[2] == com.parameters[2] &&
  528.                                 newcom.parameters[3] == com.parameters[3]) {
  529.                                 list.splice(li2 + 1, 1)
  530.                                 temp401--
  531.                             } else {
  532.                                 break
  533.                             }
  534.                         }
  535.                         if (add.length == 0) {
  536.                             add = [""]
  537.                         }
  538.                         var addid = 1
  539.  
  540.                         var texti = 0
  541.                         for (var cpi = 0; cpi < add.length; cpi++) {
  542.                             if(add[cpi] === 101){
  543.                                 temp401++
  544.                                 var newcom = { "code": 101, "indent": com.indent, "parameters": com.parameters }
  545.                                 list.splice(li2 + cpi + addid, 0, newcom)
  546.                                 texti = 0
  547.                                 continue
  548.                             }
  549.                             if (texti % 4 == 0 && texti != 0) {
  550.                                 temp401++
  551.                                 addid += 1
  552.                                 var newcom = { "code": 101, "indent": com.indent, "parameters": cc.parameters }
  553.                                 list.splice(li2 + cpi + addid, 0, newcom)
  554.                             }
  555.                             var newcom = { "code": 401, "indent": cc.indent, "parameters": [add[cpi]] }
  556.                             temp401++
  557.                             list.splice(li2 + cpi + addid, 0, newcom)
  558.                         }
  559.                     }
  560.                     if (cc.code === 102 && com.code === cc.code && com.indent == cc.indent) {
  561.                         com.parameters[0] = cc.text
  562.                         var add = cc.text
  563.                         var addid = 0
  564.                         for (var cpi = 0; cpi < add.length; cpi++) {
  565.                             while (true) {
  566.                                 addid++
  567.                                 var newcom = list[li2 + addid]
  568.                                 if (newcom && newcom.code === 402 && newcom.indent === cc.indent) {
  569.                                     newcom.parameters[1] = add[cpi]
  570.                                     break
  571.                                 }
  572.  
  573.                             }
  574.                         }
  575.                     }
  576.                 }
  577.             }
  578.         }
  579.     }
  580.     return data
  581. }
  582.  
  583.  
  584.  
  585.  
  586. DHFY.istype = function () {
  587.     return StorageManager.isLocalMode()
  588. }
  589.  
  590.  
  591. //保存对象 (对象,文件名,文件夹名)
  592. DHFY.SaveJson = function (json, name, wzname) {
  593.     if (this.istype()) {
  594.         DHFY.SaveJson2(json, name, wzname)
  595.     } else {
  596.         DHFY.SaveJson1(json, name)
  597.     }
  598.  
  599. };
  600.  
  601. //保存对象 (对象,文件名,文件夹名)
  602. DHFY.SaveJson1 = function (json, name) {
  603.     var name = name || this.json_name || 'jsonsj.json';
  604.     var data = JSON.stringify(json);
  605.     /**
  606.      * 在本地进行文件保存
  607.      * @param  {String} data     要保存到本地的数据
  608.      * @param  {String} filename 文件名
  609.      */
  610.     var saveFile = function (data, filename) {
  611.         var urlObject = window.URL || window.webkitURL || window;
  612.         var export_blob = new Blob([data]);
  613.         var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a")
  614.         save_link.href = urlObject.createObjectURL(export_blob);
  615.         save_link.download = filename;
  616.         var event = document.createEvent('MouseEvents');
  617.         event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
  618.         save_link.dispatchEvent(event);
  619.     };
  620.     // download
  621.     saveFile(data, name);
  622.     return data;
  623. };
  624.  
  625. //文件夹位置
  626. DHFY.dirPath = function (name) {
  627.     var weizhi_name = name || this.path_name || 'chucun';
  628.     var weizhi = '/' + weizhi_name + '/';
  629.     var path = window.location.pathname.replace(/(\/www|)\/[^\/]*$/, weizhi);
  630.     if (path.match(/^\/([A-Z]\:)/)) {
  631.         path = path.slice(1);
  632.     }
  633.     var dirpath = decodeURIComponent(path);
  634.  
  635.     var fs = require('fs');
  636.     if (!fs.existsSync(dirpath)) {
  637.         fs.mkdirSync(dirpath);
  638.     }
  639.     return dirpath;
  640. }
  641.  
  642.  
  643. //保存对象 (对象,文件名,文件夹名)
  644. DHFY.SaveJson2 = function (json, name, wzname) {
  645.     var name = name || this.json_name || 'jsonsj.json';
  646.     var data = JSON.stringify(json);
  647.     var filePath = this.dirPath(wzname) + name;
  648.     var fs = require('fs');
  649.     fs.writeFileSync(filePath, data);
  650.     return data;
  651. };

Lv1.梦旅人

梦石
0
星屑
65
在线时间
7 小时
注册时间
2020-8-2
帖子
6
2
发表于 2020-8-4 04:06:12 | 只看该作者
感觉不错啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-27 14:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表