铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 2505|回复: 13

[通用] 十分粗糙的复刻版动作声音修正

[复制链接]
发表于 2010-3-15 09:17 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
我在上个月在播放人物动作动画的代码里并没有播放动作的声音,今天心血来潮便改了一改。
50指令里的播放效果和lua脚本里的播放效果都无需填入武功编号,所以没法播放武功的音效,我到目前为止还想不到解决方案,就只好直接新建一个PlayActionAmination2(bnum, mode, mnum: integer);了。
改动的地方如下:
kys_battle新建一个PlayActionAmination2;
kys_engine新建一个PlaySound2;




源码在此:
  1. procedure PlayActionAmination2(bnum, mode, mnum: integer);
  2. var
  3.   d1, d2, dm, rnum, i, beginpic, endpic, idx, grp, tnum, len, spic: integer;
  4.   filename: string;
  5. begin
  6.   d1 := Ax - Bx;
  7.   d2 := Ay - By;
  8.   dm := abs(d1) - abs(d2);
  9.   if (dm >= 0) then
  10.     if d1 < 0 then
  11.       Brole[bnum].Face := 0
  12.     else
  13.       Brole[bnum].Face := 3
  14.   else if d2 < 0 then
  15.     Brole[bnum].Face := 2
  16.   else
  17.     Brole[bnum].Face := 1;

  18.   Redraw;
  19.   rnum := brole[bnum].rnum;
  20.   if rrole[rnum].AmiFrameNum[mode] > 0 then
  21.   begin
  22.     beginpic := 0;
  23.     for i := 0 to 4 do
  24.     begin
  25.       if i >= mode then
  26.         break;
  27.       beginpic := beginpic + rrole[rnum].AmiFrameNum[i] * 4;
  28.     end;
  29.     beginpic := beginpic + Brole[bnum].Face * rrole[rnum].AmiFrameNum[mode];
  30.     endpic := beginpic + rrole[rnum].AmiFrameNum[mode] - 1;

  31.     filename := format('%3d', [rrole[rnum].HeadNum]);

  32.     for i := 1 to length(filename) do
  33.       if filename[i] = ' ' then
  34.         filename[i] := '0';

  35.     idx := fileopen('fight\fight' + filename + '.idx', fmopenread);
  36.     grp := fileopen('fight\fight' + filename + '.grp', fmopenread);
  37.     len := fileseek(grp, 0, 2);
  38.     fileseek(grp, 0, 0);
  39.     fileread(grp, FPic[0], len);
  40.     tnum := fileseek(idx, 0, 2) div 4;
  41.     fileseek(idx, 0, 0);
  42.     fileread(idx, FIdx[0], tnum * 4);
  43.     fileclose(grp);
  44.     fileclose(idx);
  45.     spic := beginpic + rrole[rnum].SoundDealy[mode] - 1;

  46.     for i := beginpic to endpic do
  47.     begin
  48.       DrawBfieldWithAction(bnum, i);
  49.       if i = spic then PlaySound2(rmagic[mnum].SoundNum, 0);
  50.       sdl_updaterect(screen, 0, 0, screen.w, screen.h);
  51.       sdl_delay(20);
  52.     end;
  53.   end;

  54. end;
复制代码
  1. procedure PlaySound2(SoundNum, times: integer); overload;
  2. begin
  3.   if SoundNum in [Low(asound)..High(asound)] then
  4.     if asound[SoundNum] <> nil then
  5.       Mix_PlayChannel(-1, asound[SoundNum], times);

  6. end;
复制代码
极其简单的修改,但可以让那些atk的音效播放出来,敝人相当满意。
不知道五十指令里的播放效果和lua脚本里的播放效果该怎么弄,所以才会新建一个playaction的代码供battle里的attackaction使用,不知道dos版里50指令的播放效果有没有声音播放呢?
就这样,希望一些已经修正过这项问题的大大们可以无私的贴上修正后的代码,以取代敝人这段白痴代码。

[发帖际遇]: 轩辕夏禹拍丁春秋的马屁,获赠金钱银两5两。


[ 本帖最后由 轩辕夏禹 于 2010-3-16 01:10 编辑 ]

评分

参与人数 1声望 +15 收起 理由
weyl + 15 好贴奖励

查看全部评分

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-3-15 10:22 | 显示全部楼层
不懂
不过lua版似乎播放声音无问题
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-3-15 15:24 | 显示全部楼层
哇~15分啊……

不过话说原来不是已经有一套这样的功能么?

刚才翻了一下源码,一下子翻到了~

[发帖际遇]: winson7891闯入绝情谷,从裘千尺手中夺取“绝情丹”,转手卖于杨过,得到银两18。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-3-15 16:52 | 显示全部楼层

回复 三当家 的帖子

我没看到啊……
还是说这是winson大您自己写的,然后你忘了??
因为我翻遍了源码也没看到啊,我迟点回家再翻翻看。
我想知道dos般的50指令播放效果会不会播放声音

[发帖际遇]: 轩辕夏禹大量收购血竭、田七、没药、熊胆,想转卖给赵王府,提前被郭靖黄蓉劫走,亏损银两10两。


[ 本帖最后由 轩辕夏禹 于 2010-3-15 16:55 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-3-15 17:08 | 显示全部楼层
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-3-15 19:35 | 显示全部楼层
看吧~

话说轩辕你的源码啥版本啊……
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-3-15 20:49 | 显示全部楼层
不会吧……
我现在还在网吧打魔兽,晚上再回家看看。
话说,bt大,dos版的50指令播放效果时会不会显示音效哦?
我是指atk的声音哦。

[发帖际遇]: 轩辕夏禹收集大量金针卖给黄蓉,得钱银两4两。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-3-15 22:19 | 显示全部楼层
dos版可能会吧
dos版或复刻版的指令应该都指向对应子程,只要改了那个子程就可以了
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-3-15 22:35 | 显示全部楼层
从来电脑不开声.......
还不知道妇科有这个问题........

[发帖际遇]: killer_zingy想前往牛家村发掘曲灵风藏宝,却被侯通海弄脏了衣服,买新衣服花去银两5两。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-3-16 00:52 | 显示全部楼层
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-3-16 01:19 | 显示全部楼层
汗,我找了一下原版复刻,的确没有显示atksound这个功能

但initial是有的

可能真的是我不知道什么时候手多加的……自己都不记得了汗~

不过这很重要吗……只是抄一下playsound的格式改几个字母罢了~

另外提醒一下LZ, overload当两个功能用同样名字时才用的,只有一个功能的话不需要加~

[发帖际遇]: 老衲法号乱来于令狐冲口渴之时制止了其偷西瓜的行为,并送与令狐冲美酒一瓶,事后令狐冲赠送其银两8两。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-3-16 01:23 | 显示全部楼层

回复 十一当家 的帖子

这我也没想到,主要是想要修复原版复刻的这个问题,再加上技术有限,只好做这么粗糙的了。

[发帖际遇]: 轩辕夏禹投石杀死蒙古大汗蒙哥,天下闻名,增加声望5。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-3-16 01:26 | 显示全部楼层
我没有说你的功能粗糙啊~~

能用,逻辑不复杂,没有浪费资源~

即使改进了又会好多少?这样很好,不是吗?

就是overload有点多余~

[发帖际遇]: 老衲法号乱来在老顽童处骗取《养蜂秘法》,翻印成《如何饲养文化型蜜蜂》出版后获利银两13。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-3-16 01:46 | 显示全部楼层

回复 十三当家 的帖子

其实我可以很不要脸的说,我看不懂overload的意思……

[发帖际遇]: 轩辕夏禹发现牛家村曲灵风藏宝,共银两15两。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-12-19 01:42

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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