五哥放羊 (Uid:28110)

2015-05-30 20:45:05  
以下为预告内容,补丁未完成,目前在许多编程疑难上得到了@海森堡大人的耐心解答,在此公开膜拜。

1.M.M.T小组是柠檬夏薇发起的MabinogiModTeam,汇集几大补丁高手,本人除外。不过大家对不起Team这个词,由于研究方向不同,都是单独发布补丁。当大家都30多岁后,基本都沉寂了。

2.本人就是   . ,ID是一个小数点。但由于特殊ID导致论坛不便管理,于上星期默默地改成了最初建角色用的名字,不想用汉字的点,所以小数点没了。后来的角色是菠菜进行曲艾一,不过已经不重要。

3.多年来A了又来了又A,前不久心血来潮做了个绿坝娘之后(屏蔽鸣人用),为了扩充功能,现已加入纸娃娃功能,可在游戏内模拟试穿各种可以穿上的道具,由于不向服务器发送任何数据,所以物品栏实际上是空的,别的玩家看不到任何变化,换线后服装会恢复成正常。下图演示了圣洁翅膀、茉莉安头发、女妖服饰、塔拉克气球(物品名称是钢管文),鞋子是什么忘记了。 颜色统一设定为金币的颜色--金色随机闪烁。



4.本软件要在绿坝娘的基础上使用,绿坝娘需要随游戏启动。本软件可随时启动或退出,使用了隔空喊话技术,主要作用是选衣服和染色,之后把数据告诉绿坝娘。

5.图为普染调色板,在data\color下有几十个raw文件,是染色的调色板,为了验证,我把ColorTable.xml中的金属染色改成了布料,再把乱序因子全部改为0,于是就成了原始调色板(raw文件中的内容)。 用小号买了个金属染色来试验调色板的,不要以为真的可以把锅染成布料的彩色。

十年前曾经发过调色板的帖子:http://www.yydzh.com/read.php?tid=89604&keyword=%B5%F7%C9%AB
当时本人不会C语言,没有研究。





    

6.软件仍在制作中,由于功能过于复杂,至少高考后才能完成。

7.大家应该已经看到软件界面上有“闪烁染色”字样,不过此功能还没开始制作,为了安抚大家跳动的心,先透露一些秘密


***********************以下是技术内容,闪染爱好者请看***********************************

为防枯燥,请大家在阅读的时候,对照这几个常见闪染代码帖子,把数据代入分析:
http://www.yydzh.com/read.php?tid=752606
http://www.yydzh.com/read.php?tid=1455744
此处以金币的颜色为例: 7190FEF4

第7位=F4:颜色1。对应于color.xml中的FFFFCC00,黄色,当颜色1等于颜色2时不闪。
第5位=FE:颜色2。对应于color.xml中的FFFFFFCC,极浅的黄色。
第1位=7:闪烁模式一共6种。7表示随机时间随机频率,变成颜色2之后立刻变回1(金币模式,或眨眼模式),建议应用在头发上的小饰品,例如茉莉安的假发上有星星点缀,使用此模式效果好。
第2位=1。表示跳变时一次跳过几格(颜色1到2会换算成16个过渡颜色,请在纸上画16个格子自行模拟)。把它+1后如果等于16的因数,可以除尽,就表示只有1个循环之后每次循环相同,如果除不尽就要循环多次才能回到起点。1表示颜色1过渡到颜色2之间要变8次,=0表示16次。算法:当=0(16:1=16色)、1(16:2=8:1=8色)、3(16:4=4:1=4色)、7(16:8=2:1=2色)、B(16:12=4:3=4色倒序)的时候颜色过渡平滑规律,因为只循环1次就又回到起点。 由于金币第1位是7随机频率的原因,导致这一位没有任何作用(金币模式)。例图:6140B02A (第2位是1,每次跳2格,16色中只有8色会循环到。命名方式应为:4速8色顺序呼吸闪)

补充2:把它+1后如果不等于16的因数,例如16除以3有小数,每次循环将不同,16个颜色都会循环到。简单来说,如果不是0137B,视觉上就会有抽筋现象,特别是等于6或8的时候,因每次前进7或负7格,颜色跨度大。
数据:0  1  2  3  4  5  6  7  8  9   A  B  C   D  E  F
跳进:1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16
表现:1  2  3  4  5  6  7  8 -7 -6  -5  -4  -3 -2  -1  0
补充3:第2位步长的正确算法是,将其加1之后,再分解因式,得到了几个2,循环颜色就会少掉几倍。
例如:1,3,5,7,9,11,13,15,分解因式后无2,将循环16色
例如:2,6,10,14,分解因式后只有1个2,将循环16/2=8色
例如:4,12,分解因式后有2个2,将循环16/2/2=4色
例如:8,分解因式后有3个2,将循环16/2/2/2=2色
例如:16,分解因式后有4个2,将循环16/2/2/2/2=1色,由于1色无法形成变色,所以不闪


注意:当此位为F时会变成不闪,解答1:F表示16每次跳16格,从起点的0开始跳16格又将回到起点0,永远在颜色1上跳。解答2:F此时表示0一次跳0格;但当第2位是F第1位是8时不受影响!
24568是微抽筋(数字越大越明显),由于每次跳35679格,视觉上表现为颜色有跨度,而负数-6532(负4=B除外)会叠加一个每轮初始抽筋,特别是-1,由于对应数据是E=14,加1=15=每次前进15格,例如左端0是黑,右端F是白,按正数的15来看,从0跳15格正好跳到F,再跳15格到E,再15格到D,基本上可以按负数来对待。按负数的-1来看:虽然每次跳变一格,共跳16色,但每轮的循环将是 0,F,E,D,C,B,...一开始就有一个黑白突变抽筋,之后的15色才是渐变。

第3位=9。表示速度一共16级。0最快,F最慢。 请大家参考自己的代码验证一下。
例图:6100B808的第3位是0=快速,命名方式应为:8色0速均匀同步呼吸闪
第4位=0。表示“起跑线”共16级,0表示刚穿上时第1次循环从0号插值颜色开始,其它位相同,这一位不同,会导致闪烁不同步。


闪染的价值就由这8位数字来定,而前4位最重要。
最最重要的又是其中第1位,以黑白过渡为例,游戏首先在黑白之间产生14个插值过渡色,一共16色:
第1位=4表示呼模式(黑→白,黑→白,...,...),原色+插值色。评价:看似平滑,但从起点滑到终点后突然跳回起点导致一个抽筋
第1位=5表示吸模式(白→黑,白→黑,...,...),原色+插值色。评价:看似平滑,但从起点滑到终点后突然跳回起点导致一个抽筋
第1位=6表示呼吸模式(黑→白→黑→白→黑......),只有插值色。评价:平滑,缺点是两端的纯黑和纯白被扔掉(肉眼看不出)
第1位=7表示双色随机。直观讲就是金币模式、冒泡模式。随机时刻,某1个或多个部位同时由颜色1跳变到颜色2并立刻变回颜色1(无插值色)。之前已经讲过了,请分割3到5堆金币,观看其变换模式。评价:全身不同步,有的闪有的不闪。
第1位=8表示16色随机。16个插值色乱序。即使代码全部相同也不会同步,各部位虽闪烁频率和速度一样,但各部位每次会同时跳变成16色中的随机一种。所以同一时间各部位颜色是不同的,当然也有很小的机率截到各部位同色的图。
第1位=9表示双色同步。随机时刻,各部位同时由颜色1跳变到颜色2(无插值色)。 评价:偶尔闪一次、全身同步

***********************以下是疑难解答,闪染爱好者请看******************************

1.00开头表示不闪(不论普染还是固染)。
2.相同代码,不同步,代表颜色8F802D39,主因:第1位是8。所以许多同学很高兴地收齐一身8开头的相同代码,但是再怎么换线或等维护都是无法同步的。
http://www.yydzh.com/read.php?tid=1365585
http://www.yydzh.com/read.php?tid=1578372
http://www.yydzh.com/read.php?tid=1585244
http://www.yydzh.com/read.php?tid=1236581
http://www.yydzh.com/read.php?tid=929291
http://www.yydzh.com/read.php?tid=896502
http://www.yydzh.com/read.php?tid=891384
http://www.yydzh.com/read.php?tid=831337
http://www.yydzh.com/read.php?tid=1350877

3.开头不是0但也不闪
1).第1位如果不是456789,肯定不闪。
2).第1位等于45679、第2位等于F时不闪。请看例1:6F105D87,例2:6F10A513。由于第2位是F所以无法变色
http://www.yydzh.com/read.php?tid=922621
http://www.yydzh.com/read.php?tid=1455744
3).第56与78位相等时不闪,因为颜色1等于颜色2无法产生渐变。


4.最后请看:微弱的浅红闪               61009495
在YY搜索染色帖子已经发现至少三次9495,这个闪得不明显,肉眼不容易看出。
原因:94和95对应的颜色如下,94的十进制是148,95是149,对应的990000990033是2种相近的红色。
<MabiSysPalette category="3" number="148" RGB="FF990000" nameLocal="_LT[xml.color.149]"" />
<MabiSysPalette category="3" number="149" RGB="FF990033" nameLocal="_LT[xml.color.148]" />



***********************以下是案例解析,不想阅读上面文字的请看******************************
参考1:http://www.yydzh.com/read.php?tid=752606
参考2:http://www.yydzh.com/read.php?tid=1455744
红白渐变快闪 6720F889 ,6为呼吸模式,7为每次跳变(7+1=8)格,16:8=2:1造成只有2色,其它14色循环不到。2为稍快速,0起始格子用处不大。F8在color.xml里是248号颜色FFCCCC,89是66CC33,为何是绿色呢?因为@ronnogoman的帖子里这个颜色代码写错了,本人猜测正确应为6720F8B9,因为与89最像的是B9,而B9是CC0033命名方式应为:2速2色顺序呼吸闪


礼红闪 8530DDB8 ,8为每次在16色里随机选1色(同一时刻全身颜色会不同),因为8的原因5失效,3是稍快速,DD=221=FF0033和B8=184=CC0000命名方式应为:3速16色不同步混乱闪


蓝渐变特慢闪 82F2558D ,8为随机颜色,2无效,F是最慢速,2表示刚进入场景或刚穿上时从第2个插值颜色开始。55=85=333399和8D=141=66CCFF命名方式应为:15速16色不同步混乱闪


礼蓝闪 8F802D39 ,8为随机,F本来表示每次前进16格本来要导致永远由颜色1跳到颜色1,但是因为第1位的8(16色随机)而失效,第3位是8中速,2D=45=0000FF,39=57=0066FF命名方式应为:8速16色不同步混乱闪


蓝渐变快闪  65308DFF ,6为呼吸模式,5为每次前进6格(16:6=8:3)结果是在8个颜色中循环且每一轮开始位置不同,3为稍快速。8D=66CCFF,FF=FFFFFF命名方式应为:3速8色杂序呼吸闪


暗绿闪,69606035,6为呼吸模式,9为每次前进10格(16:10=8:5)结果是在8个颜色中循环且每一轮开始位置不同,6为微快速。60=339966,35=006633命名方式应为:6速8色杂序呼吸闪


********************以下是闪染第56/78位颜色表(color.xml)***********************
普染和第1位不是123456789的固染,第34/56/78是R/G/B值,可以直接目测或用画图/PS/染色助手直接模拟出颜色。
而第1位是123456789的颜色代码,第56/78位代表了颜色1/颜色2,无法目测RGB,下面是整理好的色表:
00=000000 01=002084 02=008221 03=0082A5 04=840C18 05=7B1894 06=BD7D21 07=C6C3C6
08=393839 09=002CFF 0A=10FF63 0B=FF0000 0C=FFFF00 0D=EF49FF 0E=29DFFF 0F=FFFFFF
10=F7EFFF 11=F7F3DE 12=EFE3B5 13=FFE3B5 14=FFD7B5 15=FFC7C6 16=CEAAAD 17=B58A7B
18=ADAAA5 19=9C5D42 1A=C6794A 1B=633C31 1C=000000 1D=211C39 1E=424563 1F=5A4D8C
20=7B8AAD 21=ADAEC6 22=E7E3FF 23=FFF38C 24=EF9252 25=C67139 26=C61400 27=7B2C10
28=000000 29=000033 2A=000066 2B=000099 2C=0000CC 2D=0000FF 2E=003300 2F=003333
30=003366 31=003399 32=0033CC 33=0033FF 34=006600 35=006633 36=006666 37=006699
38=0066CC 39=0066FF 3A=009900 3B=009933 3C=009966 3D=009999 3E=0099CC 3F=0099FF
40=00CC00 41=00CC33 42=00CC66 43=00CC99 44=00CCCC 45=00CCFF 46=00FF00 47=00FF33
48=00FF66 49=00FF99 4A=00FFCC 4B=00FFFF 4C=330000 4D=330033 4E=330066 4F=330099
50=3300CC 51=3300FF 52=333300 53=333333 54=333366 55=333399 56=3333CC 57=3333FF
58=336600 59=336633 5A=336666 5B=336699 5C=3366CC 5D=3366FF 5E=339900 5F=339933
60=339966 61=339999 62=3399CC 63=3399FF 64=33CC00 65=33CC33 66=33CC66 67=33CC99
68=33CCCC 69=33CCFF 6A=33FF00 6B=33FF33 6C=33FF66 6D=33FF99 6E=33FFCC 6F=33FFFF
70=660000 71=660033 72=660066 73=660099 74=6600CC 75=6600FF 76=663300 77=663333
78=663366 79=663399 7A=6633CC 7B=6633FF 7C=666600 7D=666633 7E=666666 7F=666699
80=6666CC 81=6666FF 82=669900 83=669933 84=669966 85=669999 86=6699CC 87=6699FF
88=66CC00 89=66CC33 8A=66CC66 8B=66CC99 8C=66CCCC 8D=66CCFF 8E=66FF00 8F=66FF33
90=66FF66 91=66FF99 92=66FFCC 93=66FFFF 94=990000 95=990033 96=990066 97=990099
98=9900CC 99=9900FF 9A=993300 9B=993333 9C=993366 9D=993399 9E=9933CC 9F=9933FF
A0=996600 A1=996633 A2=996666 A3=996699 A4=9966CC A5=9966FF A6=999900 A7=999933
A8=999966 A9=999999 AA=9999CC AB=9999FF AC=99CC00 AD=99CC33 AE=99CC66 AF=99CC99
B0=99CCCC B1=99CCFF B2=99FF00 B3=99FF33 B4=99FF66 B5=99FF99 B6=99FFCC B7=99FFFF
B8=CC0000 B9=CC0033 BA=CC0066 BB=CC0099 BC=CC00CC BD=CC00FF BE=CC3300 BF=CC3333
C0=CC3366 C1=CC3399 C2=CC33CC C3=CC33FF C4=CC6600 C5=CC6633 C6=CC6666 C7=CC6699
C8=CC66CC C9=CC66FF CA=CC9900 CB=CC9933 CC=CC9966 CD=CC9999 CE=CC99CC CF=CC99FF
D0=CCCC00 D1=CCCC33 D2=CCCC66 D3=CCCC99 D4=CCCCCC D5=CCCCFF D6=CCFF00 D7=CCFF33
D8=CCFF66 D9=CCFF99 DA=CCFFCC DB=CCFFFF DC=FF0000 DD=FF0033 DE=FF0066 DF=FF0099
E0=FF00CC E1=FF00FF E2=FF3300 E3=FF3333 E4=FF3366 E5=FF3399 E6=FF33CC E7=FF33FF
E8=FF6600 E9=FF6633 EA=FF6666 EB=FF6699 EC=FF66CC ED=FF66FF EE=FF9900 EF=FF9933
F0=FF9966 F1=FF9999 F2=FF99CC F3=FF99FF F4=FFCC00 F5=FFCC33 F6=FFCC66 F7=FFCC99
F8=FFCCCC F9=FFCCFF FA=FFFF00 FB=FFFF33 FC=FFFF66 FD=FFFF99 FE=FFFFCC FF=FFFFFF
[ 此帖被五哥放羊在2015-06-04 22:38重新编辑 ]