Project1

标题: 大佬们帮忙看看这个"事件复制生成脚本"有没有bug? [打印本页]

作者: 任小雪    时间: 2022-6-4 04:58
标题: 大佬们帮忙看看这个"事件复制生成脚本"有没有bug?
本帖最后由 任小雪 于 2022-6-5 02:24 编辑

//前程提要,$dataItems[1].meta.是我自定义变量(你可以理解为自设的公共变量)的数据的前缀,理论上都是存档时会被存档的数据,且也能被读取的。
//【已知bug,以下脚本也不是我的最终版本,但改的是一些同等水平可见的细节小bug,和最大的两个bug99%无关】第一,存档关游戏后再打开,游戏没法玩(即,其实毫无意义);第二,仅一开始的图能弄。
//【总结】于是,我还是把事情想简单了,现在也只能意识到困难没我想的简单,但怎么入手还是没有任何头绪,大概还是又又又再次放弃了这次新新新的尝试……当然如果有带佬三言两语能搞定,那倒是真的好

JAVASCRIPT 代码复制
  1. //【已知bug】貌似没法存档读取
  2. //调用法子XinEventShengcheng(DituID,ShijianID,ShijianNumber,XYPiancha);
  3.  
  4. var XinEventShengcheng= function(DituID,ShijianID,ShijianNumber,XYPiancha) {//无限生成新事件【同事件复制】
  5. //DituID要复制事件的地图id,ShijianID要复制事件的事件id,ShijianNumber要复制事件的具体要复制数,XYPiancha所生成的新事件与被复制事件的坐标偏差
  6.  
  7. var EventNumber=$dataMap.events.length+ShijianNumber;
  8.  
  9. Game_Event.prototype.event = function() {
  10.  
  11. if(DituID&&ShijianID&&ShijianNumber&&XYPiancha){
  12. if(this._mapId==DituID&&$dataMap.events.length<EventNumber){
  13. var shijian=JsonEx.makeDeepCopy($dataMap.events[ShijianID]);
  14. shijian.id=$dataMap.events.length;
  15. var XYPianchaNumber=2+XYPiancha;
  16. shijian.x=$dataMap.events[ShijianID].x+XYPiancha-Math.randomInt(XYPianchaNumber);
  17. shijian.y=$dataMap.events[ShijianID].y+XYPiancha-Math.randomInt(XYPianchaNumber);
  18. $dataMap.events.push(shijian);
  19. $dataItems[1].meta.MapEvents[DituID]=$dataMap.events;
  20.  
  21. var shijian=JsonEx.makeDeepCopy($gameMap._events[ShijianID]);
  22. shijian._eventId=$gameMap._events.length;
  23. shijian._realX=shijian.x=shijian._x=$dataItems[1].meta.MapEvents[DituID][shijian._eventId].x;
  24. shijian._realY=shijian.y=shijian._y=$dataItems[1].meta.MapEvents[DituID][shijian._eventId].y;
  25. $gameMap._events.push(shijian);
  26. $dataItems[1].meta.GameMapEvents[DituID]=$gameMap._events;
  27.  
  28. }else if(this._mapId==DituID&&$dataMap.events.length==EventNumber){
  29. DituID=null;ShijianID=null;ShijianNumber=null;XYPiancha=null;
  30. SceneManager.goto(Scene_Map);
  31.  
  32. };
  33. };
  34.  
  35. if($dataItems[1].meta.MapEvents[this._mapId]){
  36. $dataMap.events=$dataItems[1].meta.MapEvents[this._mapId];
  37. $gameMap._events=$dataItems[1].meta.GameMapEvents[this._mapId];
  38. };
  39.     return $dataMap.events[this._eventId];
  40.  
  41. };
  42.  
  43. }





作者: 在野月光族    时间: 2022-6-4 04:58


var eventCopy = JsonEx.makeDeepCopy($dataMap.events[1]);
eventCopy.id = 2;
eventCopy.name = 'EV002';
eventCopy.x +=1;
$dataMap.events.push(eventCopy);
$gameMap.setupEvents();
var sp = SceneManager._scene._spriteset;
sp.createCharacters();

ps:
SceneManager._scene → Scene_Map
_spriteset → Spriteset_Map

作者: RyanYe    时间: 2022-6-4 07:18
不知道楼主想要做什么
不过楼主的命名规范我建议改一下,不要拼音和英文混用
看的我头晕眼花,这样的代码真的是看个两三行就跪了




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1