佳丽云

英雄无敌3-WoG中文站

 找回密码
 英雄注册|Register
查看: 6276|回复: 8

ERM事件生成器【老帖关闭】

 关闭 [复制链接]

该用户从未签到

335

回帖

1万

金币

10

精华

论坛嘉宾

Rank: 9Rank: 9Rank: 9

积分
962

论坛元老杰出贡献

发表于 2006-3-21 13:13:45 | 显示全部楼层 |阅读模式
由fallening提供的源代码,我自己随便作成的
一运行就知道怎么用了,记得生成文件时要加上后缀txt
该程序不完美,不会自己判断输入正确与否,但稍懂VC的都应该会改
希望fallening能继续完善
不过对中文版的[wiki]SoD[/wiki]地图,是很方便的
yunings马上用来测试一下吧.附上源文件

我的电脑没装VC,是在公司生成EXE后上传上来的

[ 本帖最后由 sea9413 于 2009-4-7 19:10 编辑 ]

ERM事件生成器.rar

91.99 KB, 下载次数: 44, 下载积分: 金币 -5

 成长值: 30415

  • TA的每日心情
    无聊
    2020-5-27 00:09
  • 签到天数: 24 天

    连续签到: 2 天

    [LV.4]狂狼人

    5774

    回帖

    2696万

    金币

    42

    精华

    管理员

    精灵奇侠

    Rank: 12Rank: 12Rank: 12

    积分
    9245409

    社区QQ达人论坛创始人杰出贡献论坛元老

    发表于 2006-3-21 13:20:39 | 显示全部楼层
    唔,下来测试一下,咔咔

     成长值: 30415

  • TA的每日心情
    无聊
    2020-5-27 00:09
  • 签到天数: 24 天

    连续签到: 2 天

    [LV.4]狂狼人

    5774

    回帖

    2696万

    金币

    42

    精华

    管理员

    精灵奇侠

    Rank: 12Rank: 12Rank: 12

    积分
    9245409

    社区QQ达人论坛创始人杰出贡献论坛元老

    发表于 2006-3-21 13:33:00 | 显示全部楼层
    唔……

    晕菜了,这个.exe文件无法支持中文输入啊,只能输入英文字符……

    提几个建议(偶不懂VB……):

    1、事件描述不支持回车换行功能,能否改进?

    2、为了完美显示事件剧情,最好能加上每行的字符限制,限定在31个字符以内,超过的话自动换行,就不用手动换行了。另外,每个剧情处理不能超过255个字符,超过的话提示再开启一个相同语法的事件继续。

    3、生成的文件可否自带.[wiki]ERM[/wiki]的后缀?

    不过话说回来,要是真的完善这个小程序,还真是会轻松不少,很多人都可以加入汉化剧情的队伍了。

    fallening加油啊,完善了偶给你颁发勋章!

    该用户从未签到

    335

    回帖

    1万

    金币

    10

    精华

    论坛嘉宾

    Rank: 9Rank: 9Rank: 9

    积分
    962

    论坛元老杰出贡献

     楼主| 发表于 2006-3-21 15:20:25 | 显示全部楼层
    找fallening吧,上次让他生成EXE上传上来,好几天了,都没反应
    最后竟然是我自己来生成的,还要到公司才能搞
    VC不太懂,但C还是懂一些的,估计要实现yunigs要的功能并不会太难
    yunings还是联系他吧...最好让他做成可视界面的

    该用户从未签到

    218

    回帖

    6066

    金币

    0

    精华

    2级 Adventuring Hero

    Rank: 2

    积分
    342
    发表于 2006-3-21 19:56:10 | 显示全部楼层
    强烈抗议 加 强烈敬佩

    强烈抗议 为什么不放在 [wiki]ERM[/wiki]讨论里呢!
  • TA的每日心情
    擦汗
    2024-8-26 10:57
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]狂狼人

    204

    回帖

    2万

    金币

    1

    精华

    绘图大师

    Rank: 8Rank: 8

    积分
    561

    退役版主论坛元老

    发表于 2006-3-22 16:51:09 | 显示全部楼层
    算法给我,我帮大家制作成用VB编写的exe程序,让它在windows下运行

     成长值: 30415

  • TA的每日心情
    无聊
    2020-5-27 00:09
  • 签到天数: 24 天

    连续签到: 2 天

    [LV.4]狂狼人

    5774

    回帖

    2696万

    金币

    42

    精华

    管理员

    精灵奇侠

    Rank: 12Rank: 12Rank: 12

    积分
    9245409

    社区QQ达人论坛创始人杰出贡献论坛元老

    发表于 2006-3-22 17:08:47 | 显示全部楼层
    源代码如下:


    1. #include <iostream>
    2. #include <string>
    3. #include <fstream>

    4. using namespace std;

    5. //全局变量,放置输出的Erm
    6. string Export;
    7. //放置要翻译的事件的数量
    8. const int NUMBER = 1000;
    9. //存放事件描述的字符个数
    10. const int BUFFERSIZE = 10000;

    11. ////////////////////////////////////////////////////////////////////////////////
    12. //作用:将坐标(x,y,level)处的事件Discription转换到erm
    13. //输入:事件的坐标(x,y,level)
    14. //      事件的描述 buffer
    15. //输出:
    16. //附注: 发现第三个输入变量为string类型时候,直接在空格处分割字符串,调试未果
    17. //       改用*char类型替换(不解)
    18. ////////////////////////////////////////////////////////////////////////////////
    19. string to_erm( const string X, const string Y, const string Level, const char *Buffer )
    20. {
    21. string Out;
    22. //事件注释
    23. Out = "\n//在(" + X + ", " + Y + ", " + Level +" )处的事件" + "\n";  
    24. //事件的位置erm
    25. Out += "!?LE" + X + "/" + Y + "/" + Level + ";\n" ;
    26. //事件的描述erm
    27. Out += "!!VRz10:S^\n";
    28. Out += Buffer;
    29. Out += "\n^;\n";
    30. Out += "!!IF:D5/10;\n";
    31. Out += "!!IF:E1/5;\n";

    32. return Out;      
    33. }

    34. ////////////////////////////////////////////////////////////////////////////////
    35. //作用: 清空输入缓冲区,很重要,调试了半天
    36. ////////////////////////////////////////////////////////////////////////////////
    37. void clear_cache()
    38. {
    39.                   
    40.                   while ( cin.get() != '\n' )
    41.                   {}
    42. }

    43. ////////////////////////////////////////////////////////////////////////////////
    44. //作用:将转换好的erm储存成文件
    45. //输入:全局变量Export
    46. //输出:在当前目录下生成一个文本文件
    47. ////////////////////////////////////////////////////////////////////////////////
    48. void to_file()
    49. {
    50.    string FileName;
    51.    cout << endl << "请输入要输出的文件名称:" << endl;
    52.    cin >> FileName;
    53.    
    54.    if ( !cin.good())
    55.    {
    56.     cout << "错误的文件名称,请重新输入--" << endl;
    57.     to_file();   
    58.    }
    59.    
    60.    if ( cin.good () )
    61.    {
    62.    ofstream outfile ( FileName.c_str() );
    63.    outfile << Export;
    64.    
    65.    cout << "接受输入的文件名----" << endl;

    66.    cout << "输出文件完成:)" << endl << endl;
    67.    }
    68. }



    69. int main()
    70. {
    71. Export = "\nZVSE\n\n";
    72. //坐标(x,y,level),描述
    73. string x,y,level,discription;

    74. for ( int i = 0; i < NUMBER; ++i )
    75.      {
    76.            cout << "程序说明:" << endl;
    77.            cout << "依照提示输入,注意事件的描述,如果用粘贴的话,确保粘贴的内容里边"
    78.                 << endl;
    79.            cout << "不包含多个回车----"
    80.                 << endl;
    81.            cout << "按回车键开始:)" << endl;
    82.            
    83.            clear_cache();
    84.            
    85.            //基本输入部分
    86.            cout << endl << "请输入事件的x坐标( 0 - 143 ):" <<endl;
    87.            cin >> x;
    88.            
    89.            clear_cache();
    90.            
    91.            cout << endl << "请输入事件的y坐标( 0 - 143 ):" << endl;
    92.            cin >> y;
    93.            
    94.            clear_cache();
    95.            
    96.            cout << endl << "事件发生在地上/地下?(0/1)" << endl;
    97.            cin >> level;
    98.            
    99.            clear_cache();
    100.            
    101.            cout << endl << "请输入事件的描述" << endl;
    102.            char buffer[ BUFFERSIZE ];
    103.            cin.get( buffer, BUFFERSIZE, '\n' );

    104.           Export += to_erm( x, y, level, buffer );
    105.            //询问是否处理下一个事件
    106.            cout << endl << "该事件处理完毕\n" << endl;
    107.            cout << "继续处理下一个事件?(y/n)" << endl;
    108.            
    109.            clear_cache();
    110.            
    111.            //再清空一次,不放心:)
    112.            cin.clear();

    113.            char c;
    114.            cin.get( c );
    115.            if ( ( 'n' == c ) || ( 'N' == c ))
    116.            {
    117.              break;
    118.            }
    119.            
    120.            system ( "cls" );
    121.           //用linux的兄弟,把这句改成
    122.          //system ( "clear" );
    123.      }

    124. //输出到文件
    125. to_file();
    126.   
    127. system( "pause" );

    128. return 0;   
    129. }
    复制代码

    该用户从未签到

    335

    回帖

    1万

    金币

    10

    精华

    论坛嘉宾

    Rank: 9Rank: 9Rank: 9

    积分
    962

    论坛元老杰出贡献

     楼主| 发表于 2006-3-22 17:28:10 | 显示全部楼层
    水哥加油啊...
    我现在上班时间在VC
    因为暂时不忙
    还打算自己学了即写,估计不难
    VB应该容易多
  • TA的每日心情
    开心
    2021-6-15 21:47
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]野猪

    27

    回帖

    7553

    金币

    0

    精华

    1级 Hired Hero

    Rank: 1

    积分
    65
    发表于 2007-8-16 03:53:09 | 显示全部楼层
    水哥做好了吗?怎么没后文了。。
    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 英雄注册|Register

    本版积分规则

    捐赠
    关注我们,英3Mod一网打尽!

    WoG中文站 ( 辽B2-20210485-10 )|辽公网安备 21128202000228 号

    GMT+8, 2024-11-23 09:30 , Processed in 0.492118 second(s), 14 queries , Gzip On, File On.

    Powered by Discuz! X3.4

    Copyright © 2004-2022, Beijing Second Sight Technology Co., LTD.

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