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

Project1

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

[原创发布] 天气加强插件

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9727
在线时间
3227 小时
注册时间
2011-3-24
帖子
739

开拓者

跳转到指定楼层
1
发表于 2015-12-27 11:53:24 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
  1. //=============================================================================
  2. // Lanza_WeatherAdvance.js
  3. // by Lanza
  4. // Last Updated: 2015.12.27
  5. //=============================================================================
  6. var Lanza = Lanza || {};
  7. Lanza.WeatherAdvance = Lanza.WeatherAdvance || {};
  8. Lanza.rand = function(max){
  9.         return Math.floor(Math.random()*(max + 1));
  10. }
  11. /*:
  12. * @plugindesc 此插件移植于一个日站的天气加强脚本(真的忘了具体来源了……), 总之还是很实用的。
  13. * @author Lanza
  14. *
  15. * @help
  16. *
  17. * 插件命令:
  18. *        Set_Weather type, power, duration, wait        # 设定天气: 类型名(下表), 强度(1 ~ 9), 渐变时间(1 / 60 sec), 是否等待(true, false)
  19. *        类型名:
  20. *        hail                 -                 冰雹
  21. *        petal                -                樱花瓣
  22. *        bloodrain        -                血雨
  23. *        ash                        -                尘埃
  24. *        bubble                -                泡泡
  25. *
  26. */
  27. //=============================================================================
  28. // Game_Interpreter
  29. //=============================================================================
  30. Lanza.WeatherAdvance.Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
  31. Game_Interpreter.prototype.pluginCommand = function(command, args) {
  32.     Lanza.WeatherAdvance.Game_Interpreter_pluginCommand.call(this, command, args);
  33.     if(command === 'Set_Weather'){
  34.                 args[1] = parseInt(args[1]);
  35.                 args[2] = parseInt(args[2]);
  36.                 if (!$gameParty.inBattle()) {
  37.                         $gameScreen.changeWeather(args[0], args[1], args[2]);
  38.                         if (args[3] == 'true') {
  39.                                 this.wait(args[2]);
  40.                         }
  41.                 }
  42.                 return true;
  43.         }
  44. };

  45. //=============================================================================
  46. // Weather
  47. //=============================================================================
  48. Lanza.WeatherAdvance.Weather_createBitmaps = Weather.prototype._createBitmaps;
  49. Weather.prototype._createBitmaps = function() {
  50.         // 颜色
  51.         var blueGrey         = Utils.rgbToCssColor(215, 227, 227);
  52.         var grey                 = Utils.rgbToCssColor(214, 217, 217);
  53.         var aqua                = Utils.rgbToCssColor(197, 253, 254);
  54.         var lavender        = Utils.rgbToCssColor(225, 190, 244);
  55.         var lightGrey         = Utils.rgbToCssColor(233, 233, 233);
  56.         var lightBlue         = Utils.rgbToCssColor(222, 239, 243);
  57.         var lightPink         = Utils.rgbToCssColor(255, 167, 192);
  58.         var darkRed         = Utils.rgbToCssColor(141, 9, 9);
  59.         var darkBlue        = Utils.rgbToCssColor(77, 136, 225);
  60.         var darkPink         = Utils.rgbToCssColor(213, 106, 136);
  61.         // 冰雹
  62.     this._hail_bitmap = new Bitmap(4, 4);
  63.         this._hail_bitmap.fillRect(1, 0, 2, 1, blueGrey);
  64.         this._hail_bitmap.fillRect(0, 1, 1, 2, blueGrey);
  65.         this._hail_bitmap.fillRect(3, 1, 1, 2, grey);
  66.         this._hail_bitmap.fillRect(1, 3, 2, 1, grey);
  67.         this._hail_bitmap.fillRect(1, 1, 2, 2, lightGrey);
  68.         this._hail_bitmap.fillRect(1, 1, 1, 1, lightBlue);
  69.         // 樱花
  70.         this._petal_bitmap = new Bitmap(4, 4);
  71.         this._petal_bitmap.fillRect(0, 3, 1, 1, lightPink);
  72.         this._petal_bitmap.fillRect(1, 2, 1, 1, lightPink);
  73.         this._petal_bitmap.fillRect(2, 1, 1, 1, lightPink);
  74.         this._petal_bitmap.fillRect(3, 0, 1, 1, lightPink);
  75.         this._petal_bitmap.fillRect(1, 3, 1, 1, darkPink);
  76.         this._petal_bitmap.fillRect(2, 2, 1, 1, darkPink);
  77.         this._petal_bitmap.fillRect(3, 1, 1, 1, darkPink);
  78.         // 血雨
  79.         this._bloodrain_bitmap = new Bitmap(7, 56);
  80.         for(var i = 0;i < 6;i++){
  81.                 this._bloodrain_bitmap.fillRect(6 - i, i * 8, 1, 8, darkRed);
  82.         }
  83.         this._bloodrain_splash_bitmap = new Bitmap(8, 5);
  84.         this._bloodrain_splash_bitmap.fillRect(1, 0, 6, 1, darkRed);
  85.         this._bloodrain_splash_bitmap.fillRect(1, 4, 6, 1, darkRed);
  86.         this._bloodrain_splash_bitmap.fillRect(0, 1, 1, 3, darkRed);
  87.         this._bloodrain_splash_bitmap.fillRect(7, 1, 1, 3, darkRed);
  88.         // 尘埃
  89.         this._ash_bitmap = new Bitmap(3, 3);
  90.         this._ash_bitmap.fillRect(0, 1, 1, 3, lightGrey);
  91.         this._ash_bitmap.fillRect(1, 0, 3, 1, lightGrey);
  92.         this._ash_bitmap.fillRect(1, 1, 1, 1, 'white');
  93.         // 泡泡
  94.         this._bubble_bitmap = new Bitmap(24, 24);
  95.         this._bubble_bitmap.fillRect(0, 9, 24, 5, darkBlue);
  96.         this._bubble_bitmap.fillRect(1, 6, 22, 11, darkBlue);
  97.         this._bubble_bitmap.fillRect(2, 5, 20, 13, darkBlue);
  98.         this._bubble_bitmap.fillRect(3, 4, 18, 15, darkBlue);
  99.         this._bubble_bitmap.fillRect(4, 3, 16, 17, darkBlue);
  100.         this._bubble_bitmap.fillRect(5, 2, 14, 19, darkBlue);
  101.         this._bubble_bitmap.fillRect(6, 1, 12, 21, darkBlue);
  102.         this._bubble_bitmap.fillRect(9, 0, 5, 24, darkBlue);
  103.         this._bubble_bitmap.fillRect(2, 11, 20, 4, aqua);
  104.         this._bubble_bitmap.fillRect(3, 7, 18, 10, aqua);
  105.         this._bubble_bitmap.fillRect(4, 6, 16, 12, aqua);
  106.         this._bubble_bitmap.fillRect(5, 5, 14, 14, aqua);
  107.         this._bubble_bitmap.fillRect(6, 4, 12, 16, aqua);
  108.         this._bubble_bitmap.fillRect(9, 2, 4, 20, aqua);
  109.         this._bubble_bitmap.fillRect(5, 10, 1, 7, lavender);
  110.         this._bubble_bitmap.fillRect(6, 14, 1, 5, lavender);
  111.         this._bubble_bitmap.fillRect(7, 15, 1, 4, lavender);
  112.         this._bubble_bitmap.fillRect(8, 16, 1, 4, lavender);
  113.         this._bubble_bitmap.fillRect(9, 17, 1, 3, lavender);
  114.         this._bubble_bitmap.fillRect(10, 18, 4, 3, lavender);
  115.         this._bubble_bitmap.fillRect(14, 18, 1, 2, lavender);
  116.         this._bubble_bitmap.fillRect(13, 5, 4, 4, 'white');
  117.         this._bubble_bitmap.fillRect(14, 4, 2, 1, 'white');
  118.         this._bubble_bitmap.fillRect(17, 6, 1, 1, 'white');
  119.         //
  120.         // 原生图形
  121.         Lanza.WeatherAdvance.Weather_createBitmaps.call(this);
  122. };

  123. Lanza.WeatherAdvance.Weather_updateSprite = Weather.prototype._updateSprite;
  124. Weather.prototype._updateSprite = function(sprite) {
  125.         switch (this.type) {
  126.     case 'hail':
  127.         this._updateHailSprite(sprite);
  128.         break;
  129.     case 'petal':
  130.         this._updatePetalSprite(sprite);
  131.         break;
  132.         case 'bloodrain':
  133.         this._updateBloodrainSprite(sprite);
  134.         break;
  135.         case 'ash':
  136.         this._updateAshSprite(sprite);
  137.         break;
  138.         case 'bubble':
  139.         this._updateBubbleSprite(sprite);
  140.         break;
  141.     }
  142.         Lanza.WeatherAdvance.Weather_updateSprite.call(this, sprite);
  143. };

  144. Weather.prototype._updateHailSprite = function(sprite) {
  145.     sprite.bitmap = this._hail_bitmap;
  146.     sprite.ax -= 1;
  147.     sprite.ay += 18;
  148.     sprite.opacity -= 15;
  149. };

  150. Weather.prototype._updatePetalSprite = function(sprite) {
  151.     sprite.bitmap = this._petal_bitmap;
  152.     sprite.ax -= 1;
  153.     sprite.ay += 1;
  154.         sprite.opacity -= 4;
  155. };

  156. Weather.prototype._updateBloodrainSprite = function(sprite) {
  157.         if(sprite.opacity <= 150){
  158.                 sprite.ay += this._bloodrain_bitmap.height;
  159.                 sprite.ax -= this._bloodrain_bitmap.width;
  160.                 sprite.bitmap = this._bloodrain_splash_bitmap;
  161.         }
  162.         else{
  163.                 sprite.bitmap = this._bloodrain_bitmap;
  164.                 sprite.ax -= 2;
  165.                 sprite.ay += 12;
  166.         }
  167.         sprite.opacity -= 4;
  168. };
  169. Weather.prototype._updateAshSprite = function(sprite) {
  170.         var swc = Lanza.rand(75) + Lanza.rand(75) + 1
  171.     sprite.bitmap = this._ash_bitmap;
  172.         switch(swc % 3){
  173.                 case 0:
  174.                         sprite.ax -= 1;
  175.                         break;
  176.                 case 1:
  177.                         sprite.ax += 1;
  178.                         break;
  179.         }
  180.     sprite.ay += 2;
  181.         sprite.opacity -= 3;
  182. };
  183. Weather.prototype._updateBubbleSprite = function(sprite) {
  184.         var swc = Lanza.rand(75) + Lanza.rand(75) + 1
  185.     sprite.bitmap = this._bubble_bitmap;
  186.         if(75 < swc){
  187.                 sprite.ax -= 1;
  188.         }
  189.         else{
  190.                 sprite.ax += 1;
  191.         }
  192.     sprite.ay -= 1;
  193.         if(swc % 2 == 0)sprite.opacity -= 1;
  194. };


























复制代码
Lanza_WeatherAdvance.zip (1.92 KB, 下载次数: 657)
自带五个加强天气: 冰雹、樱花瓣、血雨、尘埃、泡泡。
脚本的结构很简单,如果想自行再添加是很容易的。
今后有时间的话会再更新一些天气。

点评

忘了讲,这个是我移植于一个日站上VX的天气加强脚本的,不知道有没有侵权问题...算了不管了  发表于 2015-12-27 11:54

评分

参与人数 1梦石 +1 收起 理由
余烬之中 + 1 0x0

查看全部评分

>>→Lanza Games 2020←<<
Lanza Schneider
浪子心,孤星梦永远流浪……
~不会放弃,我的精力永远充沛~
>>>>>Lanza Adventure<<<<<
>>>>>Lanza的新年派对!<<<<<
>>>>>Lanza的口袋心脏病!<<<<<

Lv2.观梦者

梦石
0
星屑
497
在线时间
266 小时
注册时间
2015-12-8
帖子
873
7
发表于 2016-1-14 00:18:48 | 只看该作者
用了以後存檔會報錯(讀取之前舊遊戲) 除非新建遊戲才會正常
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
14 小时
注册时间
2011-8-6
帖子
7
6
发表于 2016-1-11 12:22:06 | 只看该作者
本帖最后由 InterRPG 于 2016-1-11 12:31 编辑

补充....
来自官方论坛的共享
http://www.rpgmakervxace.net/top ... mic-weather-system/


作者博客:https://soulxregalia.wordpress.com/

VPS - Dynamic Weather System.rar

6.51 KB, 下载次数: 186

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9727
在线时间
3227 小时
注册时间
2011-3-24
帖子
739

开拓者

5
 楼主| 发表于 2016-1-10 10:55:52 | 只看该作者
chenyilindzh 发表于 2016-1-9 19:28
不会用···

点评

把true 和false 改1和0吧  发表于 2016-1-10 19:22
你这次仍然拼的是错的  发表于 2016-1-10 15:21
3q……手癌晚期……已经好多人吐槽我ture和false的拼写错误了……  发表于 2016-1-10 15:01
我觉得插件命令不如直接调用脚本方便.........  发表于 2016-1-10 13:23
>>→Lanza Games 2020←<<
Lanza Schneider
浪子心,孤星梦永远流浪……
~不会放弃,我的精力永远充沛~
>>>>>Lanza Adventure<<<<<
>>>>>Lanza的新年派对!<<<<<
>>>>>Lanza的口袋心脏病!<<<<<
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
245
在线时间
219 小时
注册时间
2015-9-24
帖子
166
4
发表于 2016-1-9 19:28:24 | 只看该作者
不会用···

QQ截图20160109192834.png (61.64 KB, 下载次数: 47)

QQ截图20160109192834.png

点评

不要用逗号,用空格,而且你的true拼错了  发表于 2016-1-10 10:54
插件命令怎么写呀,举个栗子嘛,我插件命令写Set_Weather hail, 9, 120,ture没有用……  发表于 2016-1-10 09:11
用 插件命令 而不是 脚本  发表于 2016-1-10 08:46
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
帖子
1516
3
发表于 2015-12-27 14:27:32 | 只看该作者
楼主辛苦了
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2015-12-27 12:13:25 | 只看该作者
你们都会手绘天气……

点评

画天气图这个部分是抄的日站VX脚本的,原脚本有20多种效果好像……都很精细  发表于 2015-12-27 12:23
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-7 11:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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