rpg游戏用代码怎么做
① 制作RPG游戏中,里面说的脚本是什么
脚本,从网络中:
脚本(script)是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。
那么,在RPG制作中的脚本,通常是指已经有个一个RPG的运行框架,也就是这个RPG游戏的代码框架已经完成,但是你要在这个框架上拓展。
很多时候,制作框架的人会实现一种自己的语言,用这种语言可以很轻松的访问RPG游戏框架,来达到拓展的目的。这个时候,你为拓展所写的代码就是脚本。(有些RPG的底层甚至也是用脚本的方式来写的)
所以脚本语言并不只有一种。
比如,rpg
maker
使用了RGSS作为脚本语言
krkr使用了KAG和TJS作为脚本语言……这样
② 求一个简单RPG游戏的代码,JAva编写的
packagecom.lxi;
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
publicclassRpg{
@SuppressWarnings("unchecked")
publicstaticvoidmain(String[]args)throwsException{
System.out.println("在这里输入两个人物进行PK,以英文逗号分隔:[BM,DH,MK]");
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
Class<Person>c1;
Class<Person>c2;
try{
Stringtemp=br.readLine();
String[]str=temp.split(",");
if(str.length!=2){
thrownewException("输入格式有误,按默认PK");
}
c1=(Class<Person>)Class.forName("com.lxi."
+str[0].toUpperCase());
c2=(Class<Person>)Class.forName("com.lxi."
+str[1].toUpperCase());
}catch(Exceptione){
//TODOAuto-generatedcatchblock
c1=(Class<Person>)Class.forName("com.lxi.BM");
c2=(Class<Person>)Class.forName("com.lxi.DH");
}
try{
Personp1=c1.newInstance();
Personp2=c2.newInstance();
longtime=System.currentTimeMillis();
longnextTime1=(long)(time+p1.coldTime*1000);//
longnextTime2=(long)(time+p2.coldTime*1000);//发动攻击的时间
System.out.println("---游戏开始---");
while(true){
longcurrenTime=System.currentTimeMillis();
if(nextTime1<currenTime){//时间到则发动攻击
p1.hit(p2);
nextTime1+=p1.coldTime*1000+p1.waitTime*1000;//下次攻击时间=冷却时间+被晕眩时间
p1.waitTime=0;//回合结束,重置被晕眩时间为0
}
if(nextTime2<currenTime){
p2.hit(p1);
nextTime2+=p2.coldTime*1000+p2.waitTime*1000;
p2.waitTime=0;
}
}
}catch(ClassCastExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(InstantiationExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IllegalAccessExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}
}
}
packagecom.lxi;
importjava.util.Random;
classBMextendsPerson{
publicBM(){
val=650;
coldTime=1.5;
fight=40;
chanceHit=3;
chanceDefense=3;
waitTime=0;
}
intcount=0;//防御技能发动的次数
inttemp=40;//攻击力,值同fight
booleanhitFlag=false;
booleandefenseFlag=false;
Randomrand=newRandom();
publicvoidhit(Personp){
if(rand.nextInt(10)<chanceHit){
fight=fight*2;//发动双倍攻击
hitFlag=true;
}
inthurt=p.defense(this);
p.val=p.val-hurt;
fight=temp;//还原为单倍攻击
if(p.val<=0){
System.out.println(this.getClass().getSimpleName()+"胜出!");
System.exit(0);
}
System.out.println(this.getClass().getSimpleName()+"攻击"
+p.getClass().getSimpleName()+","
+this.getClass().getSimpleName()
+(this.hitFlag?"发动攻击技能":"未发动攻击技能")
+p.getClass().getSimpleName()
+(this.defenseFlag?"发动防御技能":"未发动防御技能")
+this.getClass().getSimpleName()+":"+this.val+","
+p.getClass().getSimpleName()+":"+p.val);
hitFlag=false;
defenseFlag=false;
}
publicintdefense(Personp){
if(rand.nextInt(10)<chanceDefense){
if(count!=0){
p.val=p.val-p.fight;
count++;
defenseFlag=true;
if(p.val<=0){
System.out.println(this.getClass().getSimpleName()+"胜出!");
System.exit(0);
}
}
}
returnp.fight;
}
}
classMKextendsPerson{
publicMK(){
val=700;
coldTime=2.5;
fight=50;
chanceDefense=6;
chanceHit=3;
waitTime=0;
}
booleanhitFlag=false;
booleandefenseFlag=false;
Randomrand=newRandom();
publicvoidhit(Personp){
if(rand.nextInt(10)<chanceHit){
p.waitTime=3;//使对方晕眩3s
hitFlag=true;
}
inthurt=p.defense(this);
p.val=p.val-hurt;
if(p.val<=0){
System.out.println(this.getClass().getSimpleName()+"胜出!");
System.exit(0);
}
System.out.println(this.getClass().getSimpleName()+"攻击"
+p.getClass().getSimpleName()+","
+this.getClass().getSimpleName()
+(this.hitFlag?"发动攻击技能":"未发动攻击技能")
+p.getClass().getSimpleName()
+(this.defenseFlag?"发动防御技能":"未发动防御技能")
+this.getClass().getSimpleName()+":"+this.val+","
+p.getClass().getSimpleName()+":"+p.val);
hitFlag=false;
defenseFlag=false;
}
publicintdefense(Personp){
if(rand.nextInt(10)<chanceDefense){
defenseFlag=true;
returnp.fight/2;//防御技能发动,伤害减半
}
returnp.fight;
}
}
packagecom.lxi;
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
importjava.util.Random;
//三个人物的基类
abstractclassPerson{
intval;//生命值
doublecoldTime;//冷却时间
intwaitTime;//晕眩时间
intfight;//攻击力
intchanceHit;//发起主动技能的概率
intchanceDefense;//发起防御技能的概率
abstractvoidhit(Personp);//攻击技能
abstractintdefense(Personp);//防御技能,返回被伤害点数
}
classDHextendsPerson{
publicDH(){
val=600;
coldTime=1.0;
fight=30;
chanceHit=3;//表示30%的概率
chanceDefense=3;
waitTime=0;
}
Randomrand=newRandom();
booleanhitFlag=false;//主动技能发动的标识
booleandefenseFlag=false;//防御技能发动的标识
publicvoidhit(Personp){
if(rand.nextInt(10)<chanceHit){//发动主动技能
inthurt=p.defense(this);
p.val=p.val-hurt;
if(p.val<=0){
System.out.println(this.getClass().getSimpleName()+"胜出!");
System.exit(0);
}
val=val+hurt;
if(val>600)
val=600;
hitFlag=true;//标记主动技能已经发动
}else{//进行普通攻击
inthurt=p.defense(this);
p.val=p.val-hurt;
if(p.val<=0){
System.out.println(this.getClass().getSimpleName()+"胜出!");
System.exit(0);
}
}
System.out.println(this.getClass().getSimpleName()+"攻击"
+p.getClass().getSimpleName()+","
+this.getClass().getSimpleName()
+(this.hitFlag?"发动攻击技能":"未发动攻击技能")
+p.getClass().getSimpleName()
+(this.defenseFlag?"发动防御技能":"未发动防御技能")
+this.getClass().getSimpleName()+":"+this.val+","
+p.getClass().getSimpleName()+":"+p.val);
hitFlag=false;//
defenseFlag=false;//重置标记,下次重用
}
publicintdefense(Personp){
if(rand.nextInt(10)<chanceDefense){
defenseFlag=true;//标记防御技能已经发动
return0;
}else{
returnp.fight;
}
}
}
③ 求像梦幻那点的回合制RPG游戏制作工程代码!
用RPG MAKER XP做,默认就是回合制直板的,横板去66RPG搜索45度横板
④ C++如何写RPG游戏场景
2D游戏场景就像拼图游戏,由基本元素拼起来的,只要有足够的位图图片,贴在画布上就行,如果你用过war3的地图编辑器,就能很直观的了解是怎么做的,贴在画布上就行。。。。如果不用任何2D图像引擎,最底层的方法是调用GUI工具(windows系统提供的)中的绘图API函数,将画布分割成N个矩形,每个矩形用位图填充,就能构成场景。。。。
3D游戏就麻烦了,必须有3D引擎,我也不懂,3D场景相当于在石膏像上贴图片,要复杂的多。。。
⑤ 如何用CE修改RPG游戏
CE是修改数值的,比如说用CE选好你的游戏,你的钱有1000块,在搜索框打1000,然后会在左边有很多个代码,你在游戏里花掉100,在搜索框打900再查找一次,这时候左边一般只剩下一个代码,点击它,下面出现这个代码,双击,有一个框出来,输入你想修改的值,想改属性也可以用这个方法
⑥ 怎么用c#制作rpg游戏
LZ可以看一下一本叫做《手把手教你用c#制作rpg游戏》的书,里面详细的介绍了怎样用c#来制作一款完整的rpg游戏。包括人物行走,技能、背包、战斗、剧情、保存这些系统,还配了个光盘,有全程的视频教学,应该能够帮助lz快速上手。
⑦ RPG制作大师做游戏可以加入代码进行二次创作吗
RPG制作大师,正常使用它的功能是不需要代码的,但是不满意它所提供的功能是需要用代码去完成的,比如说一些昼夜系统,宠物系统什么的,用是脚本语言我记得是JavaScript的,很好理解
⑧ 怎么制作RPG游戏
从网络帮你找的!希望对楼主有帮助,好运吧!
◎第一步:决定资料格式
在进入游戏制作的初期,由于有许多和程式有关的资料需要编整,因此担任企划的人员常会忙得乱七八糟。在这个阶段,企划人员必需要和程式商量游戏中资料的格式。举个例子来说,在程式要开始设计游戏的相关工具程式时,他就会需要各种相关的资料,此时企划就必需要将这些资料一一表达给程式,让程式能够设计出合用的工具程式。像是设计一款角色扮演游戏时第一步要做的就是一个地图编辑器,因此身为企划的人要能够很明确的讲出这个地图编辑器的规格,像是地图的尺?挤段А咀⒁弧俊⒚空诺赝寄芄皇褂玫牡赝荚?素数量【注二】、需要设定什么相关资料等等【注三】。
◎第二步:设定各项资料
解决了地图资料后,程式就会开始设计地图编辑程式,此时企划并不是没有事要做了,而是面临了另一个新的工作,就是设定游戏中的各项资料。在这里所指的各项资料,指的是在游戏中将会使用到的各种相关资料,像是在角色扮演游戏中占有重要地位的道具资料;使用不同魔法发生效果的设定资料;以及战斗中的另一主角~敌人资料的设定,都是包含在这个阶段的任务。由于当程式人员将地图编辑程式写好后,企划就要开始针对这个程式进行一连串的工作,因此若是不在这个阶段先将游戏相关的资料整理好,等到要用的时候就会手忙脚乱了。
现在笔者就以道具资料来做个介绍。各位读者先想想看,在设定道具资料时需要有那些相关的资料呢?t以道具的种类来说,通常我们可以将它分为几个大类,首先是可以大略的分为人物用的装备以及使用道具,接下来装备有可以依功用的不同而再区分为武器、护甲、头盔、盾牌等等,有些游戏甚至还细分到手套、鞋子等多项不同功用的人物装备,这都是视企划认为自己的游戏中需要而决定。至于在使用的道具中,也可以大略分为治疗用道具、移动用道具、辅助型道具、以及角色扮演游戏中过关所需的必要道具。
那么我们再来看看在角色扮演游戏中的道具到底还需要些什么相关的资料呢?t首先是人物装备这一类,在角色扮演游戏中需要设定每一件装备那些人人可以使用,以及装备后所能产生的效果。通常我们常见的简单作法就是依装备的种类给予一个数值,这个数值所代表的就是攻击力或是防御力。不过这样子的设计对于要求比较多的玩家似乎无法满足,因此也有的游戏采用每一件装备都有数个数值是表示影响人物的状况。就让我们举个例子来说吧:
我们就以简单与复杂的两种方式来表示装备的资料,首先我们看以下的资料(先不管可以装备的人物):
┌——┬——————┐
│名称│能力 │
├——┼——————┤
│短剑│攻击力+10│
│巨斧│攻击力+22│
└——┴——————┘
这就是简单的装备资料设定,这种作法只能简单的表现出每件装备的好坏,但是却缺乏了装备的特性,因为在装备的资料中,只有一个数据是与战斗有关的,因此对于玩家来说,东西的好坏就只有靠数值的大小来决定。
不过各位想想看,当一位角色装备了一把短剑、和装备了一把巨大的战斧时,是否只有攻击力上的差异呢?t是不是装备了巨斧的人物会受到武器的影响而使得攻击的速度较慢呢?t因此在角色扮演游戏中也有这种复杂的装备资料:
┌——┬———┬———┐
│名称│攻击力│敏捷度│
├——┼———┼———┤
│短剑│+10│- 2│
│巨斧│+22│-10│
└——┴———┴———┘
如果采用以上的方式,那么人物装备了一件比较强力的装备时,可能会有其他的属性随之下降,因此玩家在给人物装备武器时,所要考虑的就不只是武器的攻击力,而同时要考虑到这件武器是否适合这名人物了。这样的作法,使得每一件装备都更有特色,购买装备时也不再是挑数字大的装备就好,使得游戏能够比较多变。
那么是不是这样子就够了呢?t其实各位担任企划的人员可以发挥自己的巧思,增加独特的装备特性。举个例子来说,可以增加一组数据作为武器的攻击命中率。如此一来可以设计出攻击力强但是命中率低的独特武器;也可以设计出攻击力低但是命中率高的武器,如此一来玩家在进行装备时就要更加注意了。只有发挥巧思规划出自己的特色,才能够让每一件装备有着与众不同的个性。
那么一般的道具又有什么重要的资料是不可缺少的呢?t各位读者请先想想看在您所玩过的角色扮演游戏中这些道具有什么资料呢?t在角色扮演游戏中常见的道具就是用来恢复生命及法力的药剂(有的游戏是草药或是卷轴等等),此外恢复人物不良状况的道具(像是中毒、麻庳等)也是常见到的。这一类的道具,通常我们都称之为治疗用道具。
除此之外还有些什么样的道具呢?t像是用来打开各种不同门的钥匙、使用后可以产生与魔法相同作用的魔法道具、可以让角色快速的移动到其他地点的道具、以及在剧情中需要的各种道具,都是角色扮演游戏中常见的不是吗?t这些道具有的看起来可能不是那么的起眼,但是它们的存在却让角色扮演游戏增色不少,因此如何去规划这些道具就是各位企划的一个重责大任。
好了,现在道具的资料该怎么设定大家都知道了吧,现在我们来看看其他要设定的资料。首先要看的是魔法的资料,在这里我们要设定每一项魔法的功用,像是这项魔法是攻击、防御、还是其他功用的,至于使用时消耗的法力、以及魔法的效果(治疗法术是恢复点数,攻击法术是伤害点数)都要在这个时候一一规划好。
完成了魔法的规划,就可以开始设定敌人的资料。在进入战斗时,每一名敌人角色所需要的资料其实就和玩者控制的角色相同,才可以进行各种相关的运算,因此在这个阶段,担任企划的人员就要小心的规划每一名敌人角色的数值,才可以使得游戏进行时不会有太难或是太简单的状况发生。有一些游戏为了预防这样的状况,因此出现敌人的等级是随着玩者控制角色的强弱而随之更改,也算是解决了难易度的问题。
◎第三步:编写完整的剧情
在这些资料都设定完成后,企划就要开始正视角色扮演游戏的骨干~剧情了。由于在第一个月中已经完成了故事大纲,因此这个时候就要跟剧这些大纲发展相关的情节。现在就请各位先看看上个月我们设计的剧情大纲: 游戏的主角是一名流浪的骑士,这一天经过一个残破的村庄,从村民的口中得知王国正受到魔王的危害。
基于正义感,主角前往王城觐见国王卡拉斯七世,从国王的口中得知一切的事情,同时也知道公主已经在上一次魔王手下的来袭时被抓走了。国王告知想打败魔王,就要先取得传说中的勇者之剑及勇者之铠。勇者之铠被放置在大陆西边的神殿里,那里已经被魔王的部下所占领了;勇者之剑则要取得大陆南边火山里的金属,再交给老铁匠来打造。
于是主角来到大陆西边的神殿,打倒了占领此地的魔王手下,取得了勇者之铠。接下来南边的火山,在通过了迷宫洞窟的考验后,找到了可以打造勇者之剑的神秘金属。
带着神秘的金属找到了隐居的老铁匠,将神秘金属交给他,就可以打造出勇者之剑。有了勇者之剑和勇者之铠之后,前往魔王的宫殿与魔王展开决战,在打败了魔王救回公主后,使王国恢复了和平,而者名流浪的骑士也和公主结婚成为下一任的国王。
企划人员要依自己所规划的剧情大纲,来开出游戏中要出现的地点。这些地点,也就是要提供给美术人员进行地图的绘制,因此一些相关的资料以及描述自然也少不了。以这个范例来说,需要出现的地点如下【注四】:
1. 受到攻击的村庄。
2. 国王所在的王城。
3. 大陆西边的神殿。
4. 大陆南方火山的迷宫洞窟。
5. 老铁匠的隐居地点。
6. 魔王的宫殿。
这六个出现在故事大纲中的地点就是本游戏中一定要存在的地点,也就是在制作时要列为第一优先的地点。当然有些游戏设计者也会在地图上放置一些无关剧情的地点,这就要让各位担任企划的人员自由发挥了。到了这里,本月份企划的工作也到一个阶段了。以这个月来说,企划的工作是相当繁重的,不过若是不能好好的处理这一方面的问题,恐怕会导致游戏制作后期更大的状况喔。
推荐一个制作RPG游戏的软件
《RPG 游戏制作(RPG Maker XP) 1.01 汉化修正第二版》
rpg maker xp,
http://www.skycn.com/soft/17372.html (天空的)
http://www.onlinedown.net/soft/29096.htm(华军的)
都是汉化版的,以后多多交流阿,有什么rpg制作的问题都可以去66rpg那里问,大家以后都是一家人了,呵呵。
⑨ 世界rpg存档代码怎么用
下载W3MM这个地图编辑器
先找你需要的装备然后下载W3MM这个地图编辑器 可以打开地图 左下角有物品编辑器 打开之后 找里面你要的物品 找到了前面会有4位的代码 ,在随便用一个修改器 ,去修改 ,然后保存就可以了。
《魔兽争霸Ⅲ》是的暴雪娱乐公司出品的一款即时战略游戏,《魔兽争霸Ⅲ:混乱之治》于2002年7月发行。最新资料片为《魔兽争霸Ⅲ:冰封王座》。
玩家可以选择在《魔兽争霸Ⅲ》中操控四个种族,其中人类(Human)和兽人(Orc)在其前作《魔兽争霸Ⅱ:黑潮》中就已出现,另外两个是新增的种族,即暗夜精灵 (NightElf)和不死亡灵(Undead)。