java单机rpg游戏人物对白怎么保存的

able_21 2011-09-08 03:34:09
如果是网游。都是通过协议请求服务器的,但是如果在单机,那些对话内容是怎么保存和管理的呢。比如一个任务一个任务的往下走,这些都是怎么设计的呢。求思路 。谢谢大牛们....
...全文
226 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
uncle_bacon 2011-09-30
  • 打赏
  • 举报
回复
经过,学习一下
QQ153984069 2011-09-28
  • 打赏
  • 举报
回复
对话内容保存在message()方法中,玩家根据索引可以随时撮需要的对话内容。当前对话内容的序号由sn记录。

int sn; /*对话的序号*/
public void message(int ii)
{
i=0;
dlgM=null;
dlgMenu=null;
isTalking=true;
curNPC=ii-2;
switch(ii)
{
case 2:
dlgM=new String[7];
dlgM[0]="尹风:如今奸臣当道,国家有难,匹夫有责.郭大侠苦守襄阳,为夫决意前往助守襄阳";
dlgM[1]="晶晶:官人做得对。";
dlgM[2]="尹风:此去不知何时才能回,娘子要保重身体.";
dlgM[3]="晶晶:官人一路上要多加小心";
dlgM[4]="尹风:夫君记住了";
dlgM[5]="晶晶:......(呜咽)";
dlgM[6]="晶晶:大事为重,不用挂念我.";
break;
case 3:
dlgM=new String[1];
dlgM[0]="前方是土匪出没,危害乡民,请不要轻易前往";
break;
case 4:
dlgM=new String[3];
dlgM[0]="黄药师:你从很远的地方来的,是为了找郭靖吧!";
dlgM[1]="尹风:是,求仙人指点。";
dlgM[2]="黄药师:好,随我来";
break;
case 5://
dlgM=new String[9];
dlgM[0]="尹风:郭大侠,不才愿助您驻守襄阳!";
dlgM[1]="郭靖:现在有一件很重要的事需要你的帮忙。";
dlgM[2]="尹风:大侠请说!";
dlgM[3]="郭靖:马上就到冬季,将士们需要100件去寒之物。";
dlgM[4]="尹风:这个好办,我来的路上经过一个荒岛,上面野兽众多,找点皮毛还不容易。";
dlgM[5]="郭靖:这样便好,那就托付与你了,这些银两你带上。";
dlgM[6]="获得银两10000";
dlgM[7]="郭靖:早去早回。";
dlgM[8]="郭靖:太好了,有了这些虎皮,整个冬天都不怕了,过了这个冬天就是复我河山之时!";
break;
case 6:
dlgM=new String[1];
dlgMenu=new String[2];
dlgM[0]="你希望参加这个勇士的竞技吗?需要收取350两费用,竞技必须是杀死所有野兽才会停止.";
dlgMenu[0]="参加";
dlgMenu[1]="离开";
break;
case 7://洪七公
dlgM=new String[3];
dlgM[0]="最近老觉得身体不好,本想自己去收集些药引,可是力不从心了,希望你可以帮助我,我将会给你一些报酬";
dlgM[1]="重新分配技能点需要10000两,交纳费用后你可以将技能点重新分配";
dlgM[2]="在荒岛收集10粒九花玉露丸,5棵通天草,在大智岛收集10棵千年人参,在蓬莱收集5个灵芝";
dlgMenu=new String[3];
dlgMenu[0]="分配技能";
dlgMenu[1]="接受任务";
dlgMenu[2]="离开这里";
break;
case 8://船工
dlgM=new String[1];
dlgMenu=new String[2];
dlgMenu[0]="购买";
dlgMenu[1]="离开";
dlgM[0]="在这里你找不到比我这更好的船了!船只价格是600两,你赶紧买吧!";
break;
}
if(!dlg[ii-2])
sn=0;
else
if(ii<5)
sn=dlgM.length-1;
else
if(ii==5)
{
if(tn[4]==20)
sn=7;
else
sn=6;
}
else
sn=0;
createDialogImage(dlgM[sn]);
repaint();
}
天空龙 2011-09-28
  • 打赏
  • 举报
回复
3楼是对的。
yaogg168 2011-09-20
  • 打赏
  • 举报
回复
mark 3楼思路
我要戒烟了 2011-09-08
  • 打赏
  • 举报
回复
网游大部分只要是不会变化的对白也是放在客户端上的。。。。

简单说
任务是通过变量的形式设计的

你完全可以把对话内容写在java代码中(不过写在代码中不便于修改,修改一次就要生成一个新的jar包,很麻烦,所以才放在某配置文件中)
然后通过某一个变量来表示当前正在执行的任务,当任务完成时,变量加1,执行下一个任务。。。
莫欺少年穷 2011-09-08
  • 打赏
  • 举报
回复
单机的?我玩过单机的,都是保存在文件目录下的一个文件夹下的,应该是文件流物理文件保存的,删除掉这些就没的保存了.....思路还是你自己想....

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧