查看: 6677|回复: 3

[交流讨论] 五行脚本

[复制链接]
梦石
0
星屑
60
在线时间
306 小时
注册时间
2014-8-5
回帖
403
发表于 2016-2-1 19:08:25 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 夏末渐离 于 2016-2-2 00:23 编辑

这个帖子中脚本的回复内容满足以下条件:
1. 脚本的长度在五行或五行以下   
2. 脚本代码建议使用(function(){ })();包起来
3. 每行的字符包括空格不超过79个【不包括第2条】,或者说是默认脚本里://----……的注释宽度
4. 这些脚本都是有一定意义的,并不是什么打开游戏时弹个窗口说句 hello world 那样鸡肋的代码
5. 这些脚本的用法是直接复制代码,然后拖入游戏工程的js/plugins里,而不是事件脚本

以上


有人愿意来和我一起更新本帖脚本内容(大坑)吗?0.0

点评

请问你是在挖苦我吗?  发表于 2016-2-1 22:25
不来个五行缺德脚本吗  发表于 2016-2-1 22:22

评分

参与人数 1星屑 +72 收起 理由
king + 72 精品文章

查看全部评分

  点我进入    
       ↓      
梦石
0
星屑
60
在线时间
306 小时
注册时间
2014-8-5
回帖
403
 楼主| 发表于 2016-2-1 19:08:53 | 显示全部楼层
本帖最后由 夏末渐离 于 2016-2-4 00:03 编辑

此楼用于移植原帖【五行脚本】2楼部分,已得到@喵呜喵5 授权。

//-----------------------------------------------------------------------------
更新日期:160201
[fold=菜单的人物状态界面隐藏HP、MP等RPG游戏用的数据,适用于解谜游戏。]
  1. (function(){Window_MenuStatus.prototype.drawItemStatus = function(index) {
  2. var actor = $gameParty.members()[index];
  3. var rect = this.itemRect(index);
  4. var y = rect.y + rect.height / 2 - this.lineHeight() * 1.5;
  5. this.drawActorName(actor,rect.x+162,y); };  })();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:160201
[fold=地图名显示后不消失]
  1. (function(){Window_MapName.prototype.updateFadeOut=function(){};
  2. var m5_20160201_close=Window_MapName.prototype.close;
  3. Window_MapName.prototype.close=function(){
  4. m5_20160201_close.call(this);
  5. this.contentsOpacity=0;}; })();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:160201
[fold=游戏开始运行时显示一个logo,logo放在 img\pictures 目录下,文件名为 logo]
  1. (function(){
  2.         var m5_160202_logo=Scene_Boot.prototype.start;Scene_Boot.prototype.start=function(){
  3.         var logoBitmap=Bitmap.load("img/pictures/logo.png");var mySprite = new Sprite();
  4.         mySprite.bitmap=logoBitmap;mySprite.opacity=0;this.addChild(mySprite);
  5.         this.update=function() {if (mySprite.opacity != 255&&!Input.isTriggered('escape'))
  6.                 mySprite.opacity += 2; else m5_160202_logo.call(this);}};})();
复制代码
[/fold]
[fold=正常代码]
  1. (function(){
  2.     var m5_160202_logo=Scene_Boot.prototype.start;
  3.     Scene_Boot.prototype.start=function(){
  4.         var logoBitmap=Bitmap.load("img/pictures/logo.png");
  5.         var mySprite = new Sprite();
  6.         mySprite.bitmap=logoBitmap;
  7.         mySprite.opacity=0;
  8.         this.addChild(mySprite);
  9.         this.update=function() {
  10.             if (mySprite.opacity != 255&&!Input.isTriggered('escape'))
  11.                 mySprite.opacity += 2;
  12.             else
  13.                 m5_160202_logo.call(this);
  14.         }
  15.     };
  16. })();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:160201
[fold=受怪物攻击不增加TP]
  1. (function(){Game_Battler.prototype.chargeTpByDamage = function(){}; })();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:160201
[fold=防止错按选项]
  1. (function(){var m5_20160201_start=Window_ChoiceList.prototype.start;
  2. Window_ChoiceList.prototype.start=function()
  3. { m5_20160201_start.call(this);
  4. this.deselect();   };
  5. })();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:160201
[fold=99号开关打开时,玩家可以穿墙]
  1. (function(){var m5_20160201_DebugThrough=Game_Player.prototype.isDebugThrough;
  2. Game_Player.prototype.isDebugThrough = function() {
  3. return (m5_20160201_DebugThrough.call(this) || $gameSwitches. value(99));};   })();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:160201
[fold=地图上按Q切换领队,要改按键就改第四行的最后那个’page’]
  1. (function(){Game_Party.prototype.LeadMember=function(){var a=$gameParty._actors.shift();
  2. $gameParty._actors.push(a);$gamePlayer.refresh();}
  3. Scene_Map.prototype.isMenuCalled = function() {
  4. if(Input.isTriggered('pageup')){$gameParty.LeadMember();}
  5. return Input.isTriggered('menu') || TouchInput.isCancelled();}; })();
复制代码
[/fold]
[fold=正常代码]
  1. (function(){Game_Party.prototype.LeadMember=function(){
  2.     var a=$gameParty._actors.shift();
  3.     $gameParty._actors.push(a);
  4.     $gamePlayer.refresh();
  5. }
  6. Scene_Map.prototype.isMenuCalled = function() {
  7.     if(Input.isTriggered('pageup')){   
  8.     $gameParty.LeadMember();
  9.     }
  10.     return Input.isTriggered('menu') || TouchInput.isCancelled();
  11. }; })();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:160201
[fold=随游戏进度修改某张地图中的敌群ID]
  1. (function(){var m5_20160201_met_id=Game_Player.prototype.makeEncounterTroopId;
  2. Game_Player.prototype.makeEncounterTroopId = function() {
  3.   var id=m5_20160201_met_id.call(this);
  4.   if (id == 0)return 0;
  5.   return (id + $gameVariables.values(1));   }; })();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:160201
[fold=菜单中增加读档指令]
  1. (function(){var m5_20160201_asc=Window_MenuCommand.prototype.addSaveCommand;
  2. Window_MenuCommand.prototype.addSaveCommand = function() {
  3.     m5_20160201_asc.call(this);this.addCommand("读档",'load');
  4.     if(this._handlers==null)return;
  5.     this._handlers['load'] =function(){SceneManager.push(Scene_Load)};}; })();
复制代码
[/fold]
[fold=正常代码]
  1. var m5_20160201_asc=Window_MenuCommand.prototype.addSaveCommand;
  2. Window_MenuCommand.prototype.addSaveCommand = function() {
  3.     m5_20160201_asc.call(this);
  4.     this.addCommand("读档",'load');
  5.     if(this._handlers==null)return;
  6.     this._handlers['load'] =function(){SceneManager.push(Scene_Load)};
  7. }; })();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:160201
[fold=删除物品栏和技能栏上方的帮助窗口]
  1. (function(){m5_20160201_createHelpWindow=Scene_MenuBase.prototype.createHelpWindow;
  2. Scene_MenuBase.prototype.createHelpWindow = function() {
  3.    m5_20160201_createHelpWindow.call(this);
  4.    this._helpWindow.height=0;
  5. }; })();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:160201
[fold=升级时播放SE]
  1. (function(){m5_20160201_levelUp=Game_Actor.prototype.levelUp;
  2. Game_Actor.prototype.levelUp=function(){
  3.     AudioManager.createBuffer('se', 'Cat').play();
  4.     m5_20160201_levelUp.call(this);
  5. }; })();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:160201
[fold=删除战斗界面的攻击和防御指令]
  1. (function(){Window_ActorCommand.prototype.addAttackCommand = function(){};
  2. Window_ActorCommand.prototype.addGuardCommand = function() {}; })();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:未知
自用格式
[fold=功能说明]
  1. (function(){

  2. })();
复制代码
[/fold]
[fold=正常代码]
  1. (function(){

  2. })();
复制代码
[/fold]
  点我进入    
       ↓      
回复

使用道具 举报

梦石
0
星屑
60
在线时间
306 小时
注册时间
2014-8-5
回帖
403
 楼主| 发表于 2016-2-1 19:09:16 | 显示全部楼层
本帖最后由 夏末渐离 于 2016-3-2 14:39 编辑

我发现我喜欢上日期的变量命名了……
//-----------------------------------------------------------------------------
更新日期:160201
[fold=通过120号开关禁止角色们移动。]
  1. (function(){var XM_160201_canMove=Game_Player.prototype.canMove;
  2. Game_Player.prototype.canMove=function() {
  3.     return !$gameSwitches.value(120) &&  XM_160130_canMove.call(this);
  4. };})();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:160201
[fold=在菜单画面增加游戏结束指令]
  1. (function(){Window_GameEnd.prototype.makeCommandList = function()
  2. {   this.addCommand(TextManager.toTitle, 'toTitle');
  3.      this.addCommand(TextManager.gameEnd, 'gameExit');
  4.     this.addCommand(TextManager.cancel,  'cancel');if(this._handlers==null)return;
  5.     this._handlers['gameExit'] =function(){SceneManager.exit()};};})();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:160201
[fold=升级满状态回复]
  1. (function(){var XM_160201_maxBuffRecover=Game_Actor.prototype.levelUp;
  2. Game_Actor.prototype.levelUp = function() {
  3.     XM_160201_maxBuffRecover.call(this);
  4.     this.recoverAll();
  5. };})();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:160201
[fold=固定远景图,让远景图不随角色移动。]
  1. (function(){var XM_20160103_parallax=Spriteset_Map.prototype.updateParallax;
  2. Spriteset_Map.prototype.updateParallax=function()
  3. {XM_20160103_parallax.call(this);
  4. this._parallax.origin.x =this._tilemap.origin.x;
  5. this._parallax.origin.y = this._tilemap.origin.y;};})();
复制代码
[/fold]

//-----------------------------------------------------------------------------
更新日期:160302
[fold=替换图块]
x1:新图块的地图的x坐标
y1:新图块的地图的y坐标
x2:要替换的地图的x坐标
y2:要替换的地图的y坐标
z:图块的层次,如0代表地面。
value:1.将你想要替换的新图块摆上地图,记下当前图块所在地图的x1,y1位置
           2.新建一个事件页,使用脚本:alert($gameMap.tileId(x1,y1,z))
           3.执行游戏,记下步骤2的数值即value,关闭游戏。
           4.新建一个事件页,使用脚本:$gameMap.setTileData(x2,y2,z,value) 完成指定位置的图块替换
[/fold]
[fold=五行代码]
  1. (function(){Game_Map.prototype.setTileData=function(x,y,z,value){
  2.         var width = this.width();
  3.         var height = this.height();
  4.         var index =(z * height + y) * width + x;
  5.         this.data()[index]=value;})();
复制代码
[/fold]
//-----------------------------------------------------------------------------
更新日期:未知
自用格式
[fold=功能说明]
  1. (function(){

  2. })();
复制代码
[/fold]
[fold=正常代码]
  1. (function(){

  2. })();
复制代码
[/fold]

点评

于是无非是第一行容易超,突然想到除去(function(){})();另计算就好了。  发表于 2016-2-1 23:53
话说JS的特性使之很容易超过每行79个字符的规定……改成每行100个字符如何……  发表于 2016-2-1 23:47
改好了……  发表于 2016-2-1 23:21
你这样最好拿个(function() { 五行脚本 })()包起来  发表于 2016-2-1 23:21
有些不止五行啊  发表于 2016-2-1 23:14
  点我进入    
       ↓      
回复

使用道具 举报

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
回帖
1464
发表于 2016-2-1 22:48:03 | 显示全部楼层
本帖最后由 汪汪 于 2016-2-2 00:48 编辑

好厉害……
然后收藏了。
[fold=绘制loading图片....]
[pre lang="javascript"]
(function() {Graphics.setLoadingImage = function() {
        var t="loading..";var l= t.length;var s=this._height/10
        var b= new Bitmap( l*s,s);b.fontSize = s;b.drawText(t,0,0,l*s,s,'center');
        this._loadingImage = b._canvas
};})();
[/pre]
[/fold]


[fold=新建文件夹 需要nwjs(本地) ][pre lang="javascript"]
(function() {Savepath = function(dirpath) {
if (Utils.isNwjs()){
    var fs = require('fs');
    if (!fs.existsSync(dirpath)) {fs.mkdirSync(dirpath); }
}
};})();
[/pre]
[/fold]
[fold=保存数据 需要nwjs(本地)][pre lang="javascript"]
(function() {SaveData = function(data, filePath) {
if (Utils.isNwjs()){
       var fs = require('fs');
       fs.writeFileSync(filePath, data);
}
};})();[/pre]
[/fold]
[fold=保存图片 需要nwjs(本地)][pre lang="javascript"]
(function() {Savepng = function(bitamp, filePath) {
if (Utils.isNwjs()){
       var imgData = bitmap.canvas.toDataURL();
       var base64Data = imgData.replace(/^data:image\/\w+;base64,/, "");var dataBuffer = new Buffer(base64Data, 'base64');
       var fs = require('fs');fs.writeFileSync(filePath, dataBuffer);
}
};})();
[/pre]
[/fold]
[fold=读取文件夹内列表  需要nwjs(本地)][pre lang="javascript"]
(function() {Loadfiles  = function(path) {
if (Utils.isNwjs()){
       var fs = require('fs');
       var files = fs.readdirSync(path)
       return files
}
return false
};})();
[/pre]
[/fold]

[fold=获得游戏文件夹位置]
[pre lang="javascript"]
(function() {dirpath= function() {
       var path = window.location.pathname.replace(/\/[^\/]*$/, "");
       if (path.match(/^\/([A-Z]\:)/)) {path = path.slice(1);}
       return decodeURIComponent(path);
};})();

[/pre]
[/fold]

[fold=读取json文件
url 位置,
fu  读取后调用的方法 (传入参数 json内容 ,url),
errfu 错误时调用的方法(传入参数url)  ,
stfu 读取前的方法(传入参数url), ][pre lang="javascript"]
(function() {loadFile = function(url,fu,errfu,stfu) {
            stfu && stfu(url);
            var xhr = new XMLHttpRequest();xhr.open('GET', url);xhr.overrideMimeType('application/json');
            xhr.onload = function() {if (xhr.status < 400) {fu && fu(JSON.parse(xhr.responseText),url)}};
            xhr.onerror = function() {errfu && errfu(url)};
            xhr.send();
};})();
[/pre]
[/fold]

点评

正则表达式是复制的.....  发表于 2016-2-2 00:47
我被正则表达式闪到了眼睛……  发表于 2016-2-2 00:27
大概只是看起来五行....  发表于 2016-2-2 00:24

评分

参与人数 1星屑 +10 收起 理由
夏末渐离 + 10 塞糖

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部