标题: [插件] 同步刷新图片插件(黑底叠加效果)1.09版[NEW]
tranpol
会员
Rank: 1



UID 488
精华 0
积分 51
帖子 15
阅读权限 5
注册 2007-10-12
 
发表于 2009-7-21 23:48  资料  短消息  加为好友 
同步刷新图片插件(黑底叠加效果)1.09版[NEW]

因为要用到在游戏进行中画面不断叠加(就是画面效果一直刷但游戏对话继续)
坑到的多图片刷新插件。。。存档啥的不行~而且还会倒着播放一下。。。= =
就自已写了一个同步刷新图片插件
第一次写插件。。。。写的乱了点而且全是if拼成的。。。= =
格式也不是很规范请见谅~~
==
现版本为1.09

如果游戏封包的话
请将用到的效果图单独封一个包

===
20101023

在开始时就起动time1

这样取档的图片粘留也没了= =(果然要多次试验啊)

这次因为AVG系统的关系加了

sf.同步图1层=14;
sf.同步图2层=15;

指定同步图的图层

在华丽丽AVG系统3.XX里这两系统变量就放到AVG设置里去了

================

图片是黑底叠加效果
黑底图

点击在新窗口查看全图

同步刷新效果图

点击在新窗口查看全图

===插件1.09版===


;同步刷新图1.09.20110217  BY:TRANPOL
@iscript

sf.同步图1层=14;
sf.同步图2层=15;

var timer1 = new Timer(onTimer1,"");
function pic()
{
timer1.enabled = true;
timer1.interval = f.PIC速度;
if (f.PIC1层图数==void) f.PIC1层图数 = 1;
if (f.PIC双层==true) f.PIC2层图数 = 1;
f.PIC1层过渡透明度=255;
if (f.PIC双层==true) f.PIC2层过渡透明度=255;
if (f.PIC过渡==true) f.PIC1层过渡透明度 = 0;
if (f.PIC过渡2==true) f.PIC2层过渡透明度 = 0;
if (f.PIC双层==true) f.PIC双层2层开始图数=f.PIC总图数\2;
f.PIC过渡结束图数=f.PIC总图数-25;
f.picone=void;
f.PIC无=void;
}
function onTimer1()
{
if (f.pic == true)
{
if (f.PIC过渡==true&&f.PIC无!=true)
{
if (f.PIC1层图数<f.PIC过渡结束图数&&f.PIC1层过渡透明度!=255)
{
if (f.PIC1层过渡透明度==0) f.PIC1层过渡透明度=15;
if (f.PIC1层过渡透明度>0&&f.PIC1层过渡透明度<255) f.PIC1层过渡透明度+=10;
}
if (f.PIC1层图数>=f.PIC过渡结束图数&&f.PIC1层过渡透明度!=0)
{
if (f.PIC1层过渡透明度>15) f.PIC1层过渡透明度-=10;
if (f.PIC1层过渡透明度<=15) f.PIC1层过渡透明度=0;
}
}
        try
        {
kag.fore.layers[f.PIC编号].loadImages(%['storage'=>f.PIC文件名+f.PIC1层图数,left:0,top:0,visible:true,mode:&f.PIC模式,opacity:f.PIC1层过渡透明度]);
kag.back.layers[f.PIC编号].loadImages(%['storage'=>f.PIC文件名+f.PIC1层图数,left:0,top:0,visible:true,mode:&f.PIC模式,opacity:f.PIC1层过渡透明度]);
}
        catch
        {
return true;
        }

f.PIC1层图数 = f.PIC1层图数 + 1;
if (f.PIC1层图数 > f.PIC总图数&&f.PIC无!=true)
{
f.PIC1层图数 = 1;
if (f.PIC一次==true)
{
f.picone==void;
f.pic=void;
f.PIC结束=void;
f.PIC直接结束=void;
f.PIC文件名=void;
f.PIC1层图数=void;
f.PIC总图数=void;
f.PIC过渡=void;
f.PIC结束过渡=void;
f.PIC过渡2=void;
f.PIC结束过渡2=void;
f.PIC1层过渡透明度=void;
f.PIC2层过渡透明度=void;
f.PIC双层=void;
f.PIC双层2层开始图数=void;
f.PIC一次=void;
kag.fore.layers[f.PIC编号].visible=false;
kag.back.layers[f.PIC编号].visible=false;
}
}

if (f.PIC双层2层开始图数!=0) f.PIC双层2层开始图数-=1;
if (f.PIC双层2层开始图数>0&&f.PIC无!=true)
{
kag.fore.layers[f.PIC编号2].visible=false;
kag.back.layers[f.PIC编号2].visible=false;
}
if (f.PIC双层==true&&f.PIC双层2层开始图数==0&&f.PIC无!=true)
{
if (f.PIC过渡2==true&&f.PIC无!=true)
{
if (f.PIC2层图数<f.PIC过渡结束图数&&f.PIC2层过渡透明度!=255)
{
if (f.PIC2层过渡透明度==0) f.PIC2层过渡透明度=15;
if (f.PIC2层过渡透明度>0&&f.PIC2层过渡透明度<255) f.PIC2层过渡透明度+=10;
}
if (f.PIC2层图数>=f.PIC过渡结束图数&&f.PIC2层过渡透明度!=0)
{
if (f.PIC2层过渡透明度>15) f.PIC2层过渡透明度-=10;
if (f.PIC2层过渡透明度<=15) f.PIC2层过渡透明度=0;
}
}
try
{
kag.fore.layers[f.PIC编号2].loadImages(%['storage'=>f.PIC文件名+f.PIC2层图数,left:0,top:0,visible:true,mode:&f.PIC模式,opacity:f.PIC2层过渡透明度]);
kag.back.layers[f.PIC编号2].loadImages(%['storage'=>f.PIC文件名+f.PIC2层图数,left:0,top:0,visible:true,mode:&f.PIC模式,opacity:f.PIC2层过渡透明度]);
}
        catch
        {
f.PIC无=true;
return true;
        }
f.PIC2层图数 = f.PIC2层图数 + 1;
if (f.PIC2层图数 > f.PIC总图数)
{
f.PIC2层图数 = 1;
}
}
}

//PIC结束过程
if (f.PIC结束 == true&&f.PIC无!=true)
{
f.pic=void;
if (f.PIC结束过渡==void&&f.PIC无!=true)
{
if (f.picone==void)
{
try
{
kag.fore.layers[f.PIC编号].loadImages(%['storage'=>f.PIC文件名+f.PIC1层图数,left:0,top:0,visible:true,mode:&f.PIC模式,opacity:255]);
kag.back.layers[f.PIC编号].loadImages(%['storage'=>f.PIC文件名+f.PIC1层图数,left:0,top:0,visible:true,mode:&f.PIC模式,opacity:255]);
}
        catch
        {
f.PIC无=true;
return true;
        }
f.PIC1层图数 = f.PIC1层图数 + 1;
if (f.PIC1层图数 > f.PIC总图数)
{
kag.fore.layers[f.PIC编号].visible=false;
kag.back.layers[f.PIC编号].visible=false;
f.PIC1层图数=void;
f.picone=true;
}
}
if (f.PIC双层==true&&f.PIC无!=true)
{
try
{
kag.fore.layers[f.PIC编号2].loadImages(%['storage'=>f.PIC文件名+f.PIC2层图数,left:0,top:0,visible:true,mode:&f.PIC模式,opacity:255]);
kag.back.layers[f.PIC编号2].loadImages(%['storage'=>f.PIC文件名+f.PIC2层图数,left:0,top:0,visible:true,mode:&f.PIC模式,opacity:255]);
}
        catch
        {
f.PIC无=true;
return true;
        }
f.PIC2层图数 = f.PIC2层图数 + 1;
if (f.PIC2层图数 > f.PIC总图数)
{
f.PIC2层图数 = void;
f.PIC双层=void;
f.PIC双层2层开始图数=void;
kag.fore.layers[f.PIC编号2].visible=false;
kag.back.layers[f.PIC编号2].visible=false;
}
}
}
if (f.PIC结束过渡==true&&f.PIC无!=true)
{
if (f.picone==void)
{
if (f.PIC1层过渡透明度==void) f.PIC1层过渡透明度=255;
if (f.PIC1层过渡透明度>15) f.PIC1层过渡透明度-=15;
if (f.PIC1层过渡透明度<=15) f.PIC1层过渡透明度=0;
try
{
kag.fore.layers[f.PIC编号].loadImages(%['storage'=>f.PIC文件名+f.PIC1层图数,left:0,top:0,visible:true,mode:&f.PIC模式,opacity:f.PIC1层过渡透明度]);
kag.back.layers[f.PIC编号].loadImages(%['storage'=>f.PIC文件名+f.PIC1层图数,left:0,top:0,visible:true,mode:&f.PIC模式,opacity:f.PIC1层过渡透明度]);
}
        catch
        {
f.PIC无=true;
return true;
        }
f.PIC1层图数 = f.PIC1层图数 + 1;
if (f.PIC1层图数 > f.PIC总图数)
{
f.PIC1层图数 = 1;
}
if (f.PIC1层过渡透明度==0&&f.PIC无!=true)
{
kag.fore.layers[f.PIC编号].visible=false;
kag.back.layers[f.PIC编号].visible=false;
f.PIC1层图数=void;
f.picone=true;
f.PIC1层过渡透明度=void;
}
}
if (f.PIC双层==true&&f.PIC无!=true)
{
if (f.PIC2层过渡透明度==void) f.PIC2层过渡透明度=255;
if (f.PIC2层过渡透明度>15) f.PIC2层过渡透明度-=15;
if (f.PIC2层过渡透明度<=15) f.PIC2层过渡透明度=0;
try
{
kag.fore.layers[f.PIC编号2].loadImages(%['storage'=>f.PIC文件名+f.PIC2层图数,left:0,top:0,visible:true,mode:&f.PIC模式,opacity:f.PIC2层过渡透明度]);
kag.back.layers[f.PIC编号2].loadImages(%['storage'=>f.PIC文件名+f.PIC2层图数,left:0,top:0,visible:true,mode:&f.PIC模式,opacity:f.PIC2层过渡透明度]);
}
        catch
        {
f.PIC无=true;
return true;
        }
f.PIC2层图数 = f.PIC2层图数 + 1;
if (f.PIC2层图数 > f.PIC总图数)
{
f.PIC2层图数 = 1;
}
if (f.PIC2层过渡透明度==0&&f.PIC无!=true)
{
kag.fore.layers[f.PIC编号2].visible=false;
kag.back.layers[f.PIC编号2].visible=false;
f.PIC2层图数=void;
f.PIC双层=void;
f.PIC2层过渡透明度=void;
f.PIC双层2层开始图数=void;
}
}
}
}
if (f.picone==true&&f.PIC双层==void||f.PIC直接结束==true)
{
f.picone==void;
f.pic=void;
f.PIC结束=void;
f.PIC直接结束=void;
;f.PIC文件名=void;
;f.PIC1层图数=void;
;f.PIC1层过渡透明度=void;
;f.PIC2层过渡透明度=void;
;f.PIC总图数=void;
f.PIC过渡=void;
f.PIC结束过渡=void;
f.PIC过渡2=void;
f.PIC结束过渡2=void;
f.PIC双层=void;
f.PIC双层2层开始图数=void;
f.PIC过渡结束图数==void;
f.PIC一次=void;
f.PIC无=true;
if (kag.fore.layers[f.PIC编号].visible==1) kag.fore.layers[f.PIC编号].visible=false;
if (kag.back.layers[f.PIC编号].visible==1) kag.back.layers[f.PIC编号].visible=false;
if (kag.fore.layers[f.PIC编号2].visible==1) kag.fore.layers[f.PIC编号2].visible=false;
if (kag.back.layers[f.PIC编号2].visible==1) kag.back.layers[f.PIC编号2].visible=false;
}
}
timer1.enabled = true;
timer1.interval = 150;
@endscript

@macro name=同步图
@if exp="f.PIC速度!=void"
@eval exp="f.picone==void,f.pic=void,f.PIC结束=void,f.PIC直接结束=void,f.PIC文件名=void,f.PIC1层图数=void,f.PIC2层图数=void,f.PIC总图数=void,f.PIC过渡=void,f.PIC结束过渡=void,f.PIC过渡2=void,f.PIC结束过渡2=void,f.PIC1层过渡透明度=void,f.PIC2层过渡透明度=void,f.PIC双层=void,f.PIC双层2层开始图数=void,f.PIC过渡结束图数==void,f.PIC一次=void"
@eval exp="kag.fore.layers[f.PIC编号].visible=false,kag.back.layers[f.PIC编号].visible=false,kag.fore.layers[f.PIC编号2].visible=false,kag.back.layers[f.PIC编号2].visible=false"
@endif
;黑底图片add,dodge,lighten很淡的颜色,screen自然的,psoverlay背景会变艳= =,psdiff反色
;白底图片sub,mul,darken,psburn,psdiff反色
@eval exp="f.PIC模式='add'"
@eval exp="f.PIC模式='alpha'" cond="mp.普通"
;反白?
@eval exp="f.PIC模式='add'" cond="mp.黑底叠加"
;加深叠加
@eval exp="f.PIC模式='sub'" cond="mp.叠加深"
;叠加
@eval exp="f.PIC模式='mul'" cond="mp.叠加"
;艳反白= =
@eval exp="f.PIC模式='dodge'" cond="mp.黑底叠加艳"
;叠加以底色白为显有色为无- =
@eval exp="f.PIC模式='darken'" cond="mp.白底叠加"
;取底色叠加= =底色深的越显示
@eval exp="f.PIC模式='lighten'" cond="mp.黑底叠加淡"
;取色叠加自然底色深的越显示
@eval exp="f.PIC模式='screen'" cond="mp.黑底叠加自然"
;艳叠加这颜色不错
@eval exp="f.PIC模式='psoverlay'" cond="mp.黑底叠加底色艳"
;取色叠加全画面
@eval exp="f.PIC模式='pshlight'" cond="mp.取色叠加深"
;叠加自然全画面
@eval exp="f.PIC模式='psslight'" cond="mp.取色叠加"
;加深叠加
@eval exp="f.PIC模式='psburn'" cond="mp.白底叠加深"
;底色反色
@eval exp="f.PIC模式='psdiff'" cond="mp.反色"
@eval exp="f.PIC模式='psexcl'" cond="mp.差值"

@eval exp="f.PIC编号=sf.同步图1层,f.PIC编号2=sf.同步图2层"
@eval exp="f.PIC编号=int(mp.编号),f.PIC编号2=int(mp.编号)+1" cond="mp.编号!=void"

@eval exp="f.PIC文件名=mp.文件,f.PIC总图数=mp.图数,f.pic=true,f.PIC结束=void"
@eval exp="f.PIC过渡=true" cond="mp.过渡"
@eval exp="f.PIC过渡2=true" cond="mp.过渡&&mp.双层"
@eval exp="f.PIC双层=true" cond="mp.双层"
@eval exp="f.PIC速度='150'"
@eval exp="f.PIC速度=&mp.速度" cond="mp.速度!==void"
@eval exp="f.PIC一次=true" cond="mp.一次"
[eval exp="pic(f.PIC文件名, f.PIC总图数)"]
@endmacro

@macro name=同步图停
@eval exp="f.PIC速度=&mp.速度" cond="mp.速度!==void"
@eval exp="mp.time1=f.PIC总图数-f.PIC1层图数"
@eval exp="mp.time2=f.PIC总图数-f.PIC2层图数" cond="f.PIC2层图数!=void"
@eval exp="mp.time=mp.time1*150" cond="mp.time2=void||mp.time1>mp.time2"
@eval exp="mp.time=mp.time2*150" cond="mp.time2>mp.time1&&mp.time2!=void"
@eval exp="f.PIC结束过渡=true,mp.time=2700" cond="mp.过渡"
@eval exp="f.PIC结束=true"
@eval exp="mp.time=mp.时间" cond="mp.时间!=void"
@if exp=mp.等|mp.等待|mp.时间!=void
@wait time=%time|2700
@else
@eval exp="f.PIC直接结束=true" cond="mp.直接"
@endif
@endmacro

[return]

===

指令说明

【同步图】
在游戏进行中同步刷新黑底叠加图片
一般用做游戏全屏循环画面效果

属性:
【文件】【必须】
图片的名字
不包括后面的数字
格式按图片x~图片xx来循环显示
例羽毛1.jpg~羽毛82.jpg
文件=羽毛

【图数】【必须】
图片总数量
例羽毛1.jpg~羽毛82.jpg共有82张
图数=82

【过渡】
以透明到不透明再到透明过渡效果
素材以50张以上

【双层】
如果是从没有到有再到没有的效果
例如羽毛从上向下飘
用双层效果更完美

【普通/黑底叠加/黑底叠加艳/黑底叠加淡/黑底叠加自然/黑底叠加底色艳
/白底叠加/白底叠加深/叠加/叠加深/取色叠加/取色叠加深/反色/差值】
新加图片其他叠加功能= =
用与黑底白底与透明叠加
实际效果请去游戏里亲身感受一下
默认为黑底叠加
普通为不透明特效
用做PNG透明底的特效图动画

【一次】
只一次就消失的效果
不能过渡

【编号】
可以特别指定图层号以用做其它用途
默认为系统专用图层号
双层为编号+1

【速度】
每帧的速度
毫秒为单位
默认为150毫秒

用法为
例:
@同步图 文件=羽毛 图数=82
@同步图 文件=羽毛 图数=82 过渡 双层 速度=100
[同步图 文件=阳光 图数=44 一次]
[同步图 文件=烟雾 图数=60 普通]

===

【同步图停】
同步刷新图停止

属性:
【过渡】
以不透明到透明的消失过渡效果
默认为图片播放到最后一张结束

【直接】
同步图立即消失

【等】
等待效果结束

【时间】
等待的时间

【速度】
每帧的速度
毫秒为单位
默认为原速度

用法为
例:
@同步图停
@同步图停 过渡
@同步图停 等


===

旧版会有BUG= =。。。

请把新版的代码替换入pic.ks文件


同步图刷新KRKR范例下载(1.03版)

BRSBOX地址

http://www.brsbox.com/filebox/do ... df20c55e0bca7315c6e

[ 本帖最后由 tranpol 于 2011-2-18 02:28 编辑 ]

顶部
keakon
会员
Rank: 1
TomoFansClub会长


UID 153
精华 0
积分 273
帖子 180
阅读权限 5
注册 2007-4-8
 
发表于 2009-7-22 02:36  资料  短消息  加为好友 
头疼中,其实把demo放上最方便==

貌似缩进都没了





在我眼中,只要萌的都是loli。不管她有多老,是男的也好,是机器人也罢,就算没有实体,我也一定要萌上她!
智代after PS2汉化移植完毕
顶部
tranpol
会员
Rank: 1



UID 488
精华 0
积分 51
帖子 15
阅读权限 5
注册 2007-10-12
 
发表于 2009-7-22 03:22  资料  短消息  加为好友 
第一次写这个。。。缩进太麻烦了就没按格式
呵呵反正一样用的咩

哦要范例啊。。。那等几天俺整个范例出来

顶部
tranpol
会员
Rank: 1



UID 488
精华 0
积分 51
帖子 15
阅读权限 5
注册 2007-10-12
 
发表于 2009-7-23 01:34  资料  短消息  加为好友 
加了范例下载
脚本代码小修了一下
直接看范例效果就知道是咋样的插件了

顶部
tranpol
会员
Rank: 1



UID 488
精华 0
积分 51
帖子 15
阅读权限 5
注册 2007-10-12
 
发表于 2009-7-26 02:04  资料  短消息  加为好友 
0725

啊。。。发现问题
存档问题。。。= =
试验的时候没试仔细只一开始能存档就以为都能存了
但中间存档还是没有效果啊
就加了一个同步刷新效果监视

var timer99 = new Timer(onTimer99,"");
function piclook()
{
timer99.enabled = true;
timer99.interval = 150;

}
function onTimer99()
{
    if(f.pic == true&&timer1.enabled ==false&&f.picname!=void&&f.picallnb!=void)
    {
        pic(f.picname, f.picallnb);
        return;
    }
}
piclook();



又加上停止存档有图片残留的监视
    if(f.picclose == true&&timer1.enabled ==false)
    {
f.pic=void;
f.picclose=void;
f.picname=void;
f.picnb=void;
f.picallnb=void;
f.opopen=void;
f.opend=void;
f.opopen2=void;
f.opend2=void;
tf.pici=void;
kag.fore.layers[25].visible=false;
kag.back.layers[25].visible=false;
kag.fore.layers[26].visible=false;
kag.back.layers[26].visible=false;
        return;
    }

现在存取档肯定没问题了
图片残留问题也解决了

范例也更新了一下
原来那个不知为啥取档会出错?
但这插件俺自已的系统上用的很正常啊。。。= =
这次范例系统就用了最新的KAGEX2系统
窗口尺寸800x600也就没调小了
素材还是640x480

顶部
tranpol
会员
Rank: 1



UID 488
精华 0
积分 51
帖子 15
阅读权限 5
注册 2007-10-12
 
发表于 2010-6-8 22:01  资料  短消息  加为好友 
10.06.03更新1.03

做系统时把这个插件又坑出来了

又试验了N次

发现双层的话还是会有一个图层贴在画面上= =

推断可能是f.pictwonb的问题= =

重修了一下

把tf.pici和tf.picii的透明度也变成了存档属性= =

这下总行了吧= =

再加上了没有过渡和没打等待的话

图片立马消失= =

20101021

更新1.07

原来写时思路还真是混乱='"=

把所有的变量都改成了中文名

冒似思路清楚点了= =

重新简写整理了一次

过渡效果现在为25张过渡出现25张过渡消失

素材请50张以上否则会很奇怪

BUG抓去无数= =

time1根本就不应该关掉!!

time99就是鸡肘了。。。无用的东东还是删了= =

只要time1一直存在每帧检查

就不会有贴图的现象了

又新加了几个属性功能

图层编号可以指定

停时的帧速也可以另指定

===

20101023

在开始时就起动time1

这样取档的图片粘留也没了= =(果然要多次试验啊)

这次因为AVG系统的关系加了

sf.同步图1层=14;
sf.同步图2层=15;

指定同步图的图层

在华丽丽AVG系统3.XX里这两系统变量就放到AVG设置里去了

[ 本帖最后由 tranpol 于 2010-10-24 03:50 编辑 ]

顶部
 



清除 Cookies - 联系我们 - [Key Fans Club] the Council of Doujin-game Development and Promotion - Archiver - WAP
Powered by Discuz! 5.5.0 © 2001-2006 Comsenz Inc.
Processed in 0.027720 second(s), 10 queries , Gzip enabled
粤ICP备05060595号
[ 当前模板 - 天高云淡 v 设计制作 - 七星论坛 v 请使用1024*768或以上分辨率浏览本模板 ]
请勿删除或修改此处版权图示