|
|
2003年的部分设想,现在比较懒,都是在程序中注释:
************国家************
国家国王管理城市的军团长(所属该国王的所有武将听令于他)
军团长对内政实行完全自治。
国王独立于军团长,在其之上,
国王居住的城市即为首都,当首都受到攻击时,其他城市将派人救援,救援是军团长带领(这样会造成军团长的城市空虚,处理方法
在敌国不需要显示地图
程序设计效率设想
如果精灵人数过多,可以暂时关闭一些效果以提高速度
由于精灵sprite思想需要user指示,导致反应很慢,看如何将sprite进行当前clssprite中快速思考
========================================
指令的方式(执行方式:主动执行,用户执行)
========================================
主动执行:由集合一条一条指令执行,强制符合条件的用户响应。
缺点:不确定目标执行(查找符合指令条件的用户会影响速度)
因为执行少,速度增加,但用户响应指令延迟。
方法:每循环只判断执行一个指令。
用户执行:由用户遍历指令集合判断,看是否符合执行条件的。
缺点:要查找指令集合符合条件的
方法:只要查到符合条件的指令就执行,同时退出查找指令。
设想:采用以上两种方式相结合
上述均需要设置index,
共分4类,四个集合2003.12.26
gamKingCommands gamKingCommand
gamCZCommands gamCZCommand
gamGroupCommands gamGroupCommand
gamUserCommands gamUserCommand
2003.12.27
新的设想 将4指令集合成一个指令集合,另外还可以让有些满足条件的人执行菲国家事情,如寻找国宝等等
每循环一次执行一个指令(针对不同发布者内置是什么指令,符合条件的执行)
gamCommands gamtasks (当中有项目:执行指标<重要的提前执行>
每个人自身也有任务gamTask任务添加给人后,此任务消失
任务添加方式:
如果直接是针对某人,则直接给该人添加任务gamuser.addtask
如果不特定人,则保存在gamCommands中,
待执行到时再将任务添加给个人
个人任务栏,实现连续任务的方式
设置一个字符串变量,连续存任务代码(设置任务总数999,则字符串设定为3个字符为一个任务),执行首三个字符的任务,任务完成删除首三位字符(有问题,如果先移动到某地<任务1>,执行说服任务<任务2>分段执行用户会易位,所以移动不能单独列为任务,包括其他的分段执行会导致任务中短的任务均不能分段
可以如后
<任务1杀某人>移动到某地杀某人,如何判断杀了他没有,方法就是设置将删除此任务标志,下次再执行时判断此人是否还存在,将结果写入任务完成过程文本.
<任务2领取赏金>判断某人后找某人领取赏金
或
<任务1>给某人送东西[完成后纪录送东西的情况!并确定奖赏类型\金额]
<任务2>回来给某人交差[给某人报告情况]<通类>
以上需要设置用户的属性
user应该设置所属用户sking.'国王
城主: sCity.Ruler
注:城主所属国王,城主手下所属城主
城主对国王负责,城主手下对城主负责
判断是否为同国家用GuoHao as string 判断
通过GuanJie判断是否是太守\国王,
也可以通过所属城市的太守判断是否是太守
国王在哪里,哪里就是皇城,只要是自己的,国王在自己国家的土地上移动
设置GroupID as user,=nothing为没有任何组,如果有,则加入了以GroupID为组长的组。
1,国王的指令:指挥所有的城主(即军团长)
----------------------------------------
一个国王new 一个国王指令集合(对象),
集合中的元素
(1)国王指挥特定城主去做事情
(2)不确定城主做的任务,只要有城主去做这个任务,同时指令取消,
(3)不确定城主做的任务,所有城主都可以做这个任务,要使得指令取消,需要达成一定的条件。
(4)所有城主都要做到任务。
比如国王指挥发动的战争,或补获俘虏等
2,城主指令:指挥所属武将
----------------------------------------
一个城主new 一个城主指令集合(对象),
集合中的元素
(1)城主指挥特定的武将去做事情
(2)不确定下属武将做的任务,只要有武将去做这个任务,同时指令取消,
(3)不确定下属武将做的任务,所有武将都可以做这个任务,要使得指令取消,需要达成一定的条件。
(4)所有下属武将都要做到任务。
3,组指令:指挥组内成员。
----------------------------------------
每个有名有姓的英雄都可以创建一个组(成为组长),这个组可以加入英雄或农民(没有名字的),组的指令主要由组长添加,组员对部份指令可以施加影响
每个成员们都可以成为组的成员Group,有一个对自己组的引用,如果没有引用
Group=nothing
’运用范围:例如
一个真实的英雄带着一群兵
个人指令
每个城市有一个军团长(太守/城主)
是否将该城市成员放入city的一个集合中?
************************************************
添加user的物品栏目和任务栏目。
************************************************
user(npc)根据自身情况是加血还是攻击其他人,搜索物品栏目中的物品伙武功是否满足条件,选出满足条件的物品进行使用。
obj物品(物品中有金块,可以兑换成相应的钱
值:
Name物品名称:
Spr_Name精灵图像名称
Num数量:0为此道具没有,有user购买、检到等都Num=Num-1
LeiXing类型:WuGong武功<使用消耗内力>
WuPING物品<使用物品消失>
HeadZhuangbei 装备(<装备了才有效>)防御性装备
HandZhuangbei 装备(攻击性装备)
ShengZhuangbei
JiaoZhuangbei
XiaoHao as single (内力消耗值 决定敌方内力防御还是物理防御有效)
Effect (加血还是攻击等等)
'类型(-20-减内力上限,-4-减体力,-17-减生命
' 12->+钱 -12->-钱
' 4-体力,5-攻击力,17-生命,18-生命上限,
' 19-内力(技能仅对别人使用),20-内力上限,
' 28-身法,32-加攻击力(剑,刀,棍),33-加防御力(盾
' 34-加防御力(护身符),35-资质,
' 101-开锁
' 41-拳谱,...1000-钱
' -1'无任何效果
HotPoint (数值)如果+hp me>0 攻击 -hp]
UserSpeed 用户决定使用该物品/武功,响应时间(与用户的动画结合)
Speed 武器飞行速度
TouZhi 投掷该武器伤害
userobj用户物品
值:
用户是否已装备物品
(User所有的属性)
1头盔(Head)
2手套
3衣服
4鞋子
以上已装备索引userobj中的物品(道具),没有装备=nothing
2004.1.5
在更换地图时随机确定各个npc的位置(必须是空地)
在npc受到攻击时,npc可能会放出狗或信鸽报信,玩家可以拦且。
2004.1.7
进入另外地图时,判断不同npc,
如果属于本城的将集中在一个地方出现(非出口)
出口处是新进人员,这样可以使得战斗时,敌对双方可以保持一个团队进行对抗
2004.1.8
可以使用吞噬天地的小图标表示战斗等等按钮,在点击时出现菜单(自己作)
并用小兵作为英雄的兵的图标
2004.1.13
将所有精灵分配到每个城市(包括大地图)
如在大地图上的是一些精灵和怪物类.
如在每个城市:分别有军事集合\外交集合\....,(一般来说集合的第一个就是头)
另外还有其他市民的集合:如商人等
城市内就有外交部,军部,内政部(三国内称什么?)
对该城市内的user进行了划分,每个部分一个集合
如城市的平民为pinmingGroups
治安为ZhiAnUGroups
内政为NeiZhengGroups
军事为JunShiGroups
外交为WaiJiaoGroups
初步设想是:
军事集合的user只要一到达别国就被别国视为是入侵,将调动本城市相应将领.
外交集合的user进入别国不会被视为入侵.
2004.1.14
对军师的助言,根据军师的能力%算出算准的几率,如果没达到就随机说
对国家相关的技能体现:(均放在个人userobj中)
在查找该城市的武将中,先查找出具备该技能的武将,然后再在武将中比较得出最小的,最大的,适合的值(例如,忠诚度,武力值等等)
外交:有一个值
========================================
建立团队概念
========================================
在游戏初始化时就要分配每个USER到每个团队,即使是一个人都要分配.
[共性]团队中所有USER具有人物的共性,如吃饭使用道具修理购买武器学习科学文化知识等等,
[特殊性]该团队的主要目的
初步设想
运行方式 直接运行AllGroups=>Groups
设置每个城市
团队如下(城市固定团队的不同,实现了封官的功能.)
普通团队:没有安排事的其他官员,在加入该国后进入普通团队
军事团队 团队名字就是军事)
内政团队:
治安团队:
外交团队:
人事团队
..........
平民团队:该城市的平民.
以上团队是城市的固定团队,另外在完成任务的时候可能会产生新的团队,这些团队是不固定的,如玩家邀约npc打猎(一般以一个怪物为目标)组成团队后,在一定时间后自动解除团队.恢复到原来的团队.
所以临时团队解除后,如果没有新的团队更改将回原来的团队(需要存一个值,为了表示处于该团队的第几位,还应该保存在团队的位置).
用TypeName判断团队的属性
.....................
注:在团队中,有一些如士兵(没有名字的)等user,不直接执行团队任务,但接受团队内将军的指令或负责保护他们.
=>城市团队
房间=>房间团队
大地图=>大地图团队
临时团队
对运输物品,可以把运输物品当成一个user,再由其他的对其进行保护。
即其他的兵跟随运输物品,如果有人攻击将反击。
如果这样迫切需要编写Group团队程序。
组建这个团队就有一个目标任务,完成这个目标任务将解散团队。
注意:由此每个user只可能有一个团队。
城市团队Groups=>Group(其实就是user)
其他随机产生的团队(目标团队)
ALLGroups=>Groups=>Group(user)
user英雄可以带狗等等宠物,必须是同一团队.
注:多英雄带多个宠物,以宠物的所属确定是谁的宠物,
在团队解散时,宠物同他的主人一样进入主人加入的团队.
有了团队后,判断某人是哪个国家的,只需要判断其团队属于那个国王,???????
城市中的NPC成立团队的地方就是城市内.
平民NPC依照自己能力的高低确定是加入其他团队还是自立更生.自由组合.
比如一同出去打猎,不过所有的行动即使是一个人都是以团队的身份出现的.
团队所处的位置和城市以第1位user为准.
为了避免过于复杂化,团队与团队之间战斗,只是以首领来定,不以其他成员的所属来定,也就是说不同团队之间的成员可以属于一个国家.
判断是何国军团,团队长官背后有一面本国的旗子
如何用a*算法?
用普通算法算,以军团长带队,其他成员跟随,如军团长无法移动,则动用a*算,如果a*忙,则军团长随机选择移动一下.
另成员跟随时视成员的num*32*rnd确定跟随的坐标
固定团队如内政(负责管理治安)
当前城市有人(一般平民受到攻击),则将此消息发送到内政组内,由组内成立临时团队负责处理,如国是其他国家的人攻击,视为战争,则由军事部组成临时团队
兵种设置相克关系:
长矛兵=>骑兵=>弓箭兵=>刀兵=>长矛兵
长矛兵射程大于刀兵,速度较慢,威力最大 .刀兵威力一般,攻击频率高
骑兵的速度为最快,威力较差.弓箭兵射程最长.威力最差
城市中的兵源是城市的人口数量决定的,如果该城市中发生战争,将有流民逃亡,流民逃亡采用临时团队,人数从该城市减出.任务移动到其他城市.移动目的地后加人口数量,同时临时团队消失
战争中士兵会死亡,英雄不会死亡,hp<0表示被捕,被捕后进入抓获方的团队,待团队解散时进入国家监狱,在这是会安排招降英雄,不投降的有几率被杀死
对于战争时不同国家士兵的颜色问题,可以将军团依次赋予颜色1~4,不固定每个国家士兵的颜色,以军团定.
固定团队的任务是根据不同的情况和自己的职责,
派遣临时团队完成任务.(所以临时团队是一定要在一定时间取消,或者有新的任务时
Public LeiXing As Long '
'属于自由人 (0), 卫士(1), 客栈老板(2),道具店老板(3),武器店老板(4)
卫士:城市的警卫。
负责城市的安全,分为巡逻警卫和固定警卫
巡逻警卫在城市内巡逻,攻击违法者
固定警卫则是在城门口,禁止其他敌对国家人员进入城内。(假定必须有这个国家的通行证才能入内)
制作编辑器的设想:
任务编辑器:
人物编辑器:
城市编辑器:
|
|