铁血丹心

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

[通用] 新对话指令Pascal复刻版代码

[复制链接]
发表于 2009-10-9 11:08 | 显示全部楼层 |阅读模式
新对话指令:

请仔细阅读说明,特别是红色粗体部分。

说明:
1、这是小猪3-金庸水浒传》所使用的新对话指令,功能如下:
⑴可以显示各种颜色的字体,也就是说可以对于重点名词,可以突出表示,方便玩家;也可以用不同颜色表示不同内容
比如黄色是“心想”等。
⑵在对话框上面添加姓名框,由系统自动侦识,方便玩家认清说话对象,可以避免手动写姓名到对话的麻烦,且提高对话通用性。
⑶系统自动侦识主角姓名,添加到对话相应位置,以后不必因为对话无法详细显示而剥夺大家起名的权利。
⑷支持延时播放,这个功能很多目前主流rpg都有,如今我们完美的把它引入到金群的对话系统当中。
⑸支持等待击键,同上,在重点的地方等待敲击后播放,提醒大家认真看,同时作为升级到对话自动发展,不需要反复敲击。
⑹防止方向键刷版,以后因为这个错过剧情,甚至产生bug的烦恼将彻底根除。
⑺自动侦测主角头像

⑻支持改变对话框颜色

2、使用方法:调用函数 NewTalk(headnum, talknum, namenum, place, showhead, color, frame)。
   具体参数意义:

      headnum:头像编号,若为0则读取主角头像;
      talknum:对话编号,对话不需要加*换行;
      namenum:姓名控制,这里有三种取值方式:-2,即读取R*中第一个使用head为头像的人的名字
                                         0或-1,即不显示姓名
                                         其他数值N,即读取N号对话作为姓名
      place:对话位置,0左头右对话;1右头左对话
      showhead:头像开关,0显示,1隐藏
      color:
对话文字颜色,高8位为背景色,低8位为前景色(与50指令的显示字符串的颜色设置一样)

      frame:对话框颜色,为该颜色在调色板的索引号

      控制字符:控制字符是指在对话中插入的有特殊意义的字符,如原版的*,C语言的\n等。
      **:换行
      &&:显示主角姓名
      ##:延时500毫秒
      @@:等待击键
      ^1——^5:把颜色换成1-5号颜色 0白,1黄,2红,3蓝,4绿,5橙
      ^^:把颜色换回ctrl预设
      $$:显示姓
          能自动检测(南宫,西门,东方,令狐,慕容,司马,诸葛,司空,太史,公孙,欧阳,耶律,司徒,完颜,轩辕,宇文,拓跋)等复姓(并未判断日本姓)
      %%:显示名


4、如有问题,请与本人联系


5、另有50指令版本:http://www.txdx.net/thread-400898-1-1.html



procedure NewTalk(headnum, talknum, namenum, place, showhead, color, frame: integer);
var
  k, alen, newcolor, color1, color2, nh, nw, ch, c1, r1, n, namelen, i, t1, grp, idx, offset, len, i1, i2, face, c, nx, ny, hx, hy, hw, hh, x, y, w, h, cell, row: integer;
  np3, np, np1, np2, tp, p1, ap: pchar;
  actorarray, talkarray, namearray, name1, name2: array of byte;
  pword: array[0..1] of Uint16;
begin
  pword[1] := 0;

//预设颜色值
  case color of
    0: color := 28515;
    1: color := 28421;
    2: color := 28435;
    3: color := 28563;
    4: color := 28466;
    5: color := 28450;
  end;
  color1 := color and $FF;
  color2 := (color shr 8) and $FF;
  x := 68;//对话框位置X
  y := 320;//对话框位置Y

  w := 511;//对话框宽
  h := 109;//对话框高
  nw := 86;//姓名框宽
  nh := 28;//姓名框高
  hx := 68;//头像框位置X
  hy := 244;//头像框位置Y
  hw := 57;//头像框宽
  hh := 72;//头像框高
  nx := 129;//姓名框位置X
  ny := 288;//姓名框位置Y
  if showhead = 1 then nx := x;//根据是否显示头像设定姓名框位置

  row := 5;
  cell := 25;
  if place = 1 then//根据显示位置设置头像框及姓名框位置
  begin
    hx := 522;
    nx := 431;
    if showhead = 1 then nx := x + w - nw;
  end;

  //read talk
  //读取对话
  idx := fileopen('resource\talk.idx', fmopenread);
  grp := fileopen('resource\talk.grp', fmopenread);
  if talknum = 0 then
  begin
    offset := 0;
    fileread(idx, len, 4);
  end
  else
  begin
    fileseek(idx, (talknum - 1) * 4, 0);
    fileread(idx, offset, 4);
    fileread(idx, len, 4);
  end;
  len := (len - offset);
  setlength(talkarray, len + 1);
  fileseek(grp, offset, 0);
  fileread(grp, talkarray[0], len);
  fileclose(idx);
  fileclose(grp);
  for i := 0 to len - 1 do
  begin
    talkarray[ i] := talkarray xor $FF;
    if talkarray[ i] = 255 then talkarray := 0;

  end;
  talkarray[ i] := 0;
  tp := @talkarray[0];

  //read name
   //读取姓名

  if namenum > 0 then
  begin
    idx := fileopen('resource\talk.idx', fmopenread);
    grp := fileopen('resource\talk.grp', fmopenread);
    fileseek(idx, (namenum - 1) * 4, 0);
    fileread(idx, offset, 4);
    fileread(idx, namelen, 4);

    namelen := (namelen - offset);
    setlength(namearray, namelen + 1);
    fileseek(grp, offset, 0);
    fileread(grp, namearray[0], namelen);
    fileclose(idx);
    fileclose(grp);
    for i := 0 to namelen - 2 do
    begin
      namearray[ i] := namearray xor $FF;
      if namearray[ i] = 255 then namearray := 0;
    end;
    namearray[ i] := 0;
    np := @namearray[0];
  end
  else if namenum = -2 then
  begin
    for i := 0 to length(rrole) - 1 do
    begin
      if Rrole[ i].HeadNum = headnum then
      begin
        p1 := @Rrole[ i].Name;
        namelen := 10;
        setlength(namearray, namelen);
        np := @namearray[0];
        for n := 0 to namelen - 1 do
        begin
          (np + n)^ := (p1 + n)^;
              // if (p1 + n)^ = char(0) then break;
        end;
        (np + n)^ := char(0);
        (np + n + 1)^ := char(0);
        break;
      end;
    end;
  end;

  p1 := @Rrole[0].Name;
  alen := length(p1) + 2;
  setlength(actorarray, alen);
  ap := @actorarray[0];
  for n := 0 to alen - 1 do
  begin
    (ap + n)^ := (p1 + n)^;
    if (p1 + n)^ = char(0) then break;
  end;
  (ap + n)^ := char($0);
  (ap + n + 1)^ := char(0);

  //以下为判断姓


  if alen = 6 then
  begin
    setlength(name1, 4);
    np1 := @name1[0];
    np1^ := ap^;
    (np1 + 1)^ := (ap + 1)^;
    (np1 + 2)^ := char(0);
    (np1 + 3)^ := char(0);
    setlength(name2, 4);
    np2 := @name2[0];
    np2^ := ap^;
    for i := 0 to length(name2) - 1 do
      (np2 + i)^ := (ap + i + 2)^;
  end
  else if alen > 8 then
  begin
      setlength(name1, 6);
      np1 := @name1[0];
      np1^ := ap^;
      (np1 + 1)^ := (ap + 1)^;
      (np1 + 2)^ := (ap + 2)^;
      (np1 + 3)^ := (ap + 3)^;
      (np1 + 4)^ := char(0);
      (np1 + 5)^ := char(0);
      setlength(name2, 6);
      np2 := @name2[0];
      for i := 0 to length(name2) - 1 do
        (np2 + i)^ := (ap + i + 4)^;
  end
  else if alen = 8 then
  begin
    if ((puint16(ap)^ = $6EAB) and ((puint16(ap + 2)^ = $63AE))) or
      ((puint16(ap)^ = $E8A6) and ((puint16(ap + 2)^ = $F9AA))) or
      ((puint16(ap)^ = $46AA) and ((puint16(ap + 2)^ = $E8A4))) or
      ((puint16(ap)^ = $4FA5) and ((puint16(ap + 2)^ = $B0AA))) or
      ((puint16(ap)^ = $7DBC) and ((puint16(ap + 2)^ = $65AE))) or
      ((puint16(ap)^ = $71A5) and ((puint16(ap + 2)^ = $A8B0))) or
      ((puint16(ap)^ = $D1BD) and ((puint16(ap + 2)^ = $AFB8))) or
      ((puint16(ap)^ = $71A5) and ((puint16(ap + 2)^ = $C5AA))) or
      ((puint16(ap)^ = $D3A4) and ((puint16(ap + 2)^ = $76A5))) or
      ((puint16(ap)^ = $BDA4) and ((puint16(ap + 2)^ = $5DAE))) or
      ((puint16(ap)^ = $DABC) and ((puint16(ap + 2)^ = $A7B6))) or
      ((puint16(ap)^ = $43AD) and ((puint16(ap + 2)^ = $DFAB))) or
      ((puint16(ap)^ = $71A5) and ((puint16(ap + 2)^ = $7BAE))) or
      ((puint16(ap)^ = $B9A7) and ((puint16(ap + 2)^ = $43C3))) or
      ((puint16(ap)^ = $61B0) and ((puint16(ap + 2)^ = $D5C1))) or
      ((puint16(ap)^ = $74A6) and ((puint16(ap + 2)^ = $E5A4))) or
      ((puint16(ap)^ = $DDA9) and ((puint16(ap + 2)^ = $5BB6))) then
    begin
      setlength(name1, 6);
      np1 := @name1[0];
      np1^ := ap^;
      (np1 + 1)^ := (ap + 1)^;
      (np1 + 2)^ := (ap + 2)^;
      (np1 + 3)^ := (ap + 3)^;
      (np1 + 4)^ := char(0);
      (np1 + 5)^ := char(0);
      setlength(name2, 4);
      np2 := @name2[0];
      for i := 0 to length(name2) - 1 do
        (np2 + i)^ := (ap + i + 4)^;
    end
    else
    begin
      setlength(name1, 4);
      np1 := @name1[0];
      np1^ := ap^;
      (np1 + 1)^ := (ap + 1)^;
      (np1 + 2)^ := char(0);
      (np1 + 3)^ := char(0);
      setlength(name2, 6);
      np2 := @name2[0];
      for i := 0 to length(name2) - 1 do
        (np2 + i)^ := (ap + i + 2)^;
    end;
  end;


  ch := 0;
  while ((puint16(tp + ch))^ shl 8 <> 0) and ((puint16(tp + ch))^ shr 8 <> 0) do
  begin
    redraw;
    c1 := 0;
    r1 := 0;
    DrawRectangle(x, y, w, h, frame, colcolor($FF), 40);
    if (showhead = 0) or (headnum < 0) then
    begin
      DrawRectangle(hx, hy, hw, hh, frame, colcolor($FF), 40);
      if headnum = 0 then
      begin
        DrawHeadPic(RRole[0].HeadNum, hx, hy + 68);
      end
      else
      begin
        DrawHeadPic(headnum, hx, hy + 68);
      end;
    end;
    if namenum <> 0 then
    begin
      DrawRectangle(nx, ny, nw, nh, frame, colcolor($FF), 40);
      namelen := length(np);
      DrawBig5ShadowText(np, nx + 20 - namelen * 9 div 2, ny + 4, colcolor($63), colcolor($70));
    end;

    while r1 < row do
    begin
      pword[0] := (puint16(tp + ch))^;
      if (pword[0] shr 8 <> 0) and (pword[0] shl 8 <> 0) then
      begin
        ch := ch + 2;
        if (pword[0] and $FF) = $5E then //^^改变文字颜色
        begin
          case smallint((pword[0] and $FF00) shr 8) - $30 of
            0: newcolor := 28515;
            1: newcolor := 28421;
            2: newcolor := 28435;
            3: newcolor := 28563;
            4: newcolor := 28466;
            5: newcolor := 28450;
            64: newcolor := color;//^^改回预设颜色

          else newcolor := color;
          end;
          color1 := newcolor and $FF;
          color2 := (newcolor shr 8) and $FF;
        end
        else if pword[0] = $2323 then //## 延时
        begin
          sdl_delay(500);
        end
        else if pword[0] = $2A2A then //**换行
        begin
          if c1 > 0 then
            inc(r1);
          c1 := 0;
        end
        else if pword[0] = $4040 then //@@等待击键
        begin
          sdl_updaterect(screen, 0, 0, screen.w, screen.h);
          k := waitanykey;
          while (k = sdlk_right) or
            (k = sdlk_left) or
            (k = sdlk_up) or
            (k = sdlk_down) do
          begin
            k := waitanykey;
          end;
        end
        else if (pword[0] = $2626) or (pword[0] = $2525) or (pword[0] = $2424) then
        begin
          case pword[0] of
            $2626: np3 := ap; //&&显示姓名
            $2525: np3 := np2; //%%显示名
            $2424: np3 := np1; //$$显示姓
          end;
          i := 0;
          while (puint16(np3 + i)^ shr 8 <> 0) and (puint16(np3 + i)^ shl 8 <> 0) do
          begin
            pword[0] := puint16(np3 + i)^;
            i := i + 2;
            Drawbig5ShadowText(@pword[0], x - 14 + CHINESE_FONT_SIZE * c1, y + 4 + CHINESE_FONT_SIZE * r1, colcolor(color1), colcolor(color2));
            inc(c1);
            if c1 = cell then
            begin
              c1 := 0;
              inc(r1);
              if r1 = row then
              begin
                sdl_updaterect(screen, 0, 0, screen.w, screen.h);
                k := waitanykey;
                while (k = sdlk_right) or
                  (k = sdlk_left) or
                  (k = sdlk_up) or
                  (k = sdlk_down) do
                begin
                  k := waitanykey;
                end;
                c1 := 0;
                r1 := 0;
                redraw;
                DrawRectangle(x, y, w, h, frame, colcolor($FF), 40);
                if (showhead = 0) or (headnum < 0) then
                begin
                  DrawRectangle(hx, hy, hw, hh, frame, colcolor($FF), 40);
                  if headnum = 0 then
                  begin
                    DrawHeadPic(RRole[0].HeadNum, hx, hy + 68);
                  end
                  else
                  begin
                    DrawHeadPic(headnum, hx, hy + 68);
                  end;
                end;
                if namenum <> 0 then
                begin
                  DrawRectangle(nx, ny, nw, nh, frame, colcolor($FF), 40);
                  namelen := length(np);
                  DrawBig5ShadowText(np, nx + 20 - namelen * 9 div 2, ny + 4, colcolor($63), colcolor($70));
                end;
              end;
            end;
          end;
        end
        else //显示文字
        begin
          DrawBig5ShadowText(@pword, x - 14 + CHINESE_FONT_SIZE * c1, y + 4 + CHINESE_FONT_SIZE * r1, colcolor(color1), colcolor(color2));
          inc(c1);
          if c1 = cell then
          begin
            c1 := 0;
            inc(r1);
          end;
        end;
      end
      else break;
    end;
    sdl_updaterect(screen, 0, 0, screen.w, screen.h);
    k := waitanykey;
    while (k = sdlk_right) or
      (k = sdlk_left) or
      (k = sdlk_up) or
      (k = sdlk_down) do
    begin
      k := waitanykey;
    end;
    if (pword[0] and $FF = 0) or (pword[0] and $FF00 = 0) then break;
  end;
  redraw;

end;



以下为“大家好,我是&&,我姓$$,大家叫我%%哥哥就可以了。”的效果


[ 本帖最后由 KG 于 2010-1-5 13:38 编辑 ]

本帖子中包含更多资源

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

x

评分

参与人数 1声望 +14 收起 理由
黄顺坤 + 14 加分。。竟然只有1精。。

查看全部评分

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-9 11:16 | 显示全部楼层
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-9 12:00 | 显示全部楼层
提前祝贺技术帝迎来第二十个精华

[发帖际遇]: 荆越拜岳老三为师,得到见面礼银两11.
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-9 12:00 | 显示全部楼层
不错不错~~~~

但有个问题,如果某人叫司马空,但不是姓司马,却是姓司名马空,怎么识别?

[ 本帖最后由 winson7891 于 2009-10-9 12:04 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2009-10-9 12:07 | 显示全部楼层
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-9 12:09 | 显示全部楼层
我转牛角尖吗……

我只是提出可能出现的错误和处理的需要,是客观性的,你要说我转牛角尖也没办法~~

[发帖际遇]: winson7891在码头遇到武氏兄弟与神龙教众群殴,闪避不及,中“一阳指”,体力迅速流失,花费银两8购买包子补充体力。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2009-10-9 12:16 | 显示全部楼层
我不认为有人会这样取这样钻牛角尖的名字,你认为有人这样取名字且认为这是正常的
思维方式不一样,没有必要就这个问题讨论下去
在极其渺茫的情况下,如果真有人这样取名,且认为我的姓名分割方式是错的,那就只好由得他认为


[发帖际遇]: 在盟主争夺战中,李文秀施展“我见犹怜”,结果KG败给李文秀,损失报名费银两15。


[ 本帖最后由 KG 于 2009-10-9 12:18 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-9 12:29 | 显示全部楼层
甚好。。唐宁哥哥。。。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2009-10-9 12:30 | 显示全部楼层
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-9 12:37 | 显示全部楼层
任何一个人都会认为诸葛亮姓诸葛而不是姓诸,因为诸葛是复姓,姓诸的人没必要给自己的小孩取个首字为葛的多字名来放弃祖宗的姓……
火神有名,咋看起来这么眼熟勒……

[发帖际遇]: 凶神恶煞跑江湖卖艺,施展特技“胡说八道”,结果卖出无名草药若干,得款银两15。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-9 13:29 | 显示全部楼层
原帖由 KG 于 2009-10-9 12:30 发表
你不知道米堡左边锋叫唐宁么

[发帖际遇]: KG在佛山巧遇钟阿四一家被凤天南强逼,花费银两27银两帮忙买鹅赔给凤天南。

现在是维拉的左边锋了……

[发帖际遇]: 幸知常乘船去王盘山旅游,被不明噪音弄晕,花费银两9。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-9 15:15 | 显示全部楼层
扔到LUA,开始看PASCAL
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-10 05:02 | 显示全部楼层
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-10 08:33 | 显示全部楼层
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-10 09:05 | 显示全部楼层
s xor ff    if s==255 s=0 原来这样解密对话啊

唐僧:悟空,為師餓了,你去找些吃的來。
唐僧:悟空,我餓了,你去找點飯吃,有酒有肉最好,我要與你們三人不醉不歸。
唐僧:他媽的,餓死老子了,嘴里快要淡出個鳥來,猴子,去找吃的。
唐僧:我餓……
唐僧:出門在外,就是不方便。這里要是有柴米油鹽,我就讓你們嘗嘗我的手藝了。現在嘛,主角:悟空,你想想辦法吧
唐僧:餓死了餓死了,猴子,快給我找點吃的。
孫悟空:八戒、沙師弟,你們好好保護師父,我去去就來。
孫悟空:哈哈,好,這事包在我身上,你們等著。
孫悟空:你奶奶的,這種事為什么總是老子去?
孫悟空:好……
孫悟空:放心吧,我去山下看看,要是能弄到獐腿肉兔肉羊羔坐臀小豬耳朵小牛腰子,我就給主角:你做玉笛誰家聽落梅。
孫悟空:我去就我去,不過咱們可要說好了,如果我弄回來的東西不好吃,你們可不能怨我。
白骨精:幾位大哥一定餓了,去我家吃飯吧。
白骨精:在家靠父母,出外靠朋友,幾位長老,來來來,都到我家喝酒去!
白骨精:這鳥不拉屎雞不下蛋的地,你們居然在這念經?趕緊跟我走吧,我帶你們找樂子去。
白骨精:跟我走……
白骨精:這位長老,想必餓了吧,小女子的家就在山下,到小女子家中一坐如何?
白骨精:幾位型男,帥呆了,酷斃了,想不想跟我去跳個舞啊?
豬八戒:師父,沙師弟,這咱們就答應了這位女施主吧。
豬八戒:哈哈,好,夠哥們意思,師父,咱們跟她去吧。
豬八戒:<靠,這姑娘長得真他媽正點,我跟你走!>
豬八戒:行嗎?
豬八戒:大師兄固然重要,可是肚子更重要,依我之見,咱們應該跟她走。
豬八戒:唉,一邊是美女,一邊是遠行的大師兄,我……我……我要好吃的!
沙僧:二師兄,還是等大師兄回來再說吧
沙僧:不可!咱們要等大師兄回來!
沙僧:二師兄,你他媽的就不能等會大師兄啊
沙僧:不……
沙僧:我覺得不妥,大師兄回來會找不到咱們的。
沙僧:怎么辦?我們該怎么辦?糾結啊……
我最近構思了一個劇本,叫《三打白骨精》,需要五個演員,分別飾演唐僧、孫悟空、白骨精、豬八戒、沙僧,你負責找五個人來吧。
人數不夠,總共需要五個人,分別飾演唐僧、孫悟空、白骨精、豬八戒、沙僧。
就這五個人,就這個順序,你確定嗎?
確定
等等,我再換換演員
好,那咱們現在就開始演。**金庸水滸劇場,第一部大戲,《三打白骨精》,現在開始!!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-10 10:17 | 显示全部楼层
直接用 255-s 也可以
对话一直就是这样的,从原版开始就这么保存

[发帖际遇]: weyl看到神仙姐姐蜡像,叩了一千个响头,蒲团被磕破了,发现里面有银两4.
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-10 10:20 | 显示全部楼层
把talk.grp异或以后用IE打开,选择big5编码就能看到大堆对话

[发帖际遇]: 黄顺坤跟踪成昆进入明教密道,结果:被秃驴发现打伤,损失医药费银两24。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-10 11:10 | 显示全部楼层
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2009-10-10 11:15 | 显示全部楼层
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-14 08:35 | 显示全部楼层
不知道我做的对不对~
我把他替代了kys event里的instruct_1
结果编译不了~~
求助~

[发帖际遇]: killer_zingy相助张召重对抗陈家洛,不料落入红花会埋伏,被打得落荒而逃,损失银两8。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2009-10-14 09:39 | 显示全部楼层
直接写到源码里,然后在50扩展指令的43(调用事件)部分加个判断,如果调用的事件为XX,就调用新对话

然后在事件里就直接调用XX号事件

[发帖际遇]: 在盟主争夺战中,李文秀施展“我见犹怜”,结果KG败给李文秀,损失报名费银两18。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-14 09:43 | 显示全部楼层
甚好。。唐宁哥哥。。。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-10-15 07:34 | 显示全部楼层

回复 21# 的帖子

原来还是要用50指令的~
谢谢了
pascal里的源码有很多个文件, 还是kys_event吗?
[发帖际遇]: killer_zingy在海边沙滩上捡到一支圣火令,当废铜卖了,获得银两6.


[ 本帖最后由 killer_zingy 于 2009-10-15 07:35 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2009-12-24 09:32 | 显示全部楼层
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2009-12-24 09:38 | 显示全部楼层
别指望我再给你加分了。。KK。。

[发帖际遇]: 黄顺坤在绝情谷捡到杨过丢掉的绝情丹,卖出银两12两。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

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

GMT+8, 2024-5-7 02:41

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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