论坛首页›扭转乾坤[修改]›level文件修改法(大部分原创,回答天魂的问题)

level文件修改法(大部分原创,回答天魂的问题)

楼主:79068223发表于 2010-3-21 10:55回复 9查看 5,531最后回复 2012-9-16
共 10 楼
发表于 2010-3-21 10:551#
楼主
刚学会改level的一些方法,有人问我,在这分享一下,感谢各位朋友对我曾经的帮助
以金华成威力:(meteor / level / sn13_.pst)
int Rule = 4; (游戏规则,暗杀,盟主,我只知道5是死斗)
int RoundTime = 15;(游戏时间)
int PlayerSpawn = 249;(出生点)
int PlayerSpawnDir = 90;(面对的角度)
int PlayerWeapon = 24;(主武器)
int PlayerWeapon2 = 14;(副武器)
int PlayerHP = 2000;(生命值)
int g_counter = 0;(不懂)
int trg0 = 0;
int trg1 = 0;
int trg2 = 0; (都是任务条件,一会仔细讲)
int trg3 = 0;
int trg4 = 0;
int trg5 = 0;
int timer0 = 0;(不懂)
int survivor = -1;(不懂)
OnStart()
{
AddNPC("npc13_01"); 游戏开始时加入的电脑人,如果中间插入 AddNPC("npc5_01"); 便会加入屠城
AddNPC("npc13_02");
AddNPC("npc13_03");
AddNPC("npc13_04");
AddNPC("npc13_05");
AddNPC("npc13_06");
AddNPC("npc13_07");
AddNPC("npc13_08");
} (↓↓↓请问这一段是什么意思↓↓↓) 还望高手指教
OnUpdate()
{
int player = GetChar("player");
if (player < 0)
{
return 0
} (↑↑↑请问这一段是什么意思↑↑↑)

int c; 与下面所有类似 c = GetChar("冷燕"); 的必须对应,不然会出现读取sn13_.pst错误,
int c2 c2 = GetChar("官差﹒甲"); 就是说下面出现c20,这里也必须有int c20
int c3 c3 = GetChar("官差﹒乙");
int c4 c4 = GetChar("官差﹒丙");
int c5 c5 = GetChar("夜猫子");

g_counter = g_counter + 1;
if (trg0 == 0)
{
c = GetChar("冷燕"); 就是说c指冷燕,下文的c到if (trg0 = 1)都指冷燕
c2 = GetChar("官差﹒甲");
c3 = GetChar("官差﹒乙");
c4 = GetChar("官差﹒丙");
c5 = GetChar("夜猫子");
if (c>=0 && c2>=0 && c3>=0 && c4>=0 && c5>=0)
{
ChangeBehavior(c, "follow", player);
Perform(c, "pause", 8);
Perform(c, "aggress");
Perform(c, "say", "你有本事就来呀!");
Perform(c, "pause", 10);
Perform(c, "faceto", c3);

ChangeBehavior(c2, "follow", c);
Perform(c2, "pause", 15);
Perform(c2, "aggress");
Perform(c2, "say", "你这臭娘们,总算让我找到了!看你这下子往那跑!");
Perform(c2, "pause", 2);
Perform(c2, "faceto", c);

ChangeBehavior(c3, "follow", player);
Perform(c3, "pause", 5);
Perform(c3, "aggress");
Perform(c3, "say", "在一旁的小子没事就给我快滚开!否则连你也一起押走!");
Perform(c3, "pause", 15);
Perform(c3, "faceto", c);

ChangeBehavior(c4, "follow", player);
Perform(c4, "pause", 5);
Perform(c4, "say", "哟~这小子该不会是这女飞贼的帮手,管他是谁,通通讨打!");
Perform(c4, "pause", 20);
Perform(c4, "faceto" ,c);
ChangeBehavior(c5, "patrol", 172, 127, 133, 127);《 改变c5(夜猫子)的行动,patorl巡逻》
Perform(c5, "pause", 10);
Perform(c5, "faceto", player); 《 面对玩家,是一个任务条件》
Perform(c5, "aggress");
Perform(c5, "pause", 20);
Perform(c5, "faceto", player);

PlayerPerform("block", 0);
PlayerPerform("pause", 20); 《pause暂停,20是20秒》
PlayerPerform("block", 1);

trg0 = 1;
timer0 = GetGameTime() + 25;
}
}
《《《《《int trg* = 0;*为数字, 这个是一个任务过程的总条件.就是讲一个任务过程,包括对话,使用道具,设定NPC任务的一段任务的条件,当符合这个条件的时候任务才会启动. trg0 = 0和trg0 = 1因该是对应的,他俩之间的部分就是符合条件“if (c>=0 && c2>=0 && c3>=0 && c4>=0 && c5>=0)”时执行的任务流程. 》》》》》
UID 93018
发表于 2010-3-21 11:092#
如果想这这段任务中加入或移除NPC,就在
if (c>=0 && c2>=0 && c3>=0 && c4>=0 && c5>=0)
{
ChangeBehavior(c, "follow", player);
Perform(c, "pause", 8);
Perform(c, "aggress");
Perform(c, "say", "你有本事就来呀!");
Perform(c, "pause", 10);
Perform(c, "faceto", c3);

中的ChangeBehavior(c, "follow", player);上面加上 AddNPC("npc18_10");
AddNPC("npc18_11");
AddNPC("npc18_12");
变为
if (c>=0 && c2>=0 && c3>=0 && c4>=0 && c5>=0)
{
AddNPC("npc5_01");
AddNPC("npc5_03");
AddNPC("npc5_02");

ChangeBehavior(c, "follow", player);
Perform(c, "pause", 8);
Perform(c, "aggress");
Perform(c, "say", "你有本事就来呀!");
Perform(c, "pause", 10);
Perform(c, "faceto", c3);
便会在这一段任务进行式加入屠城, 无名杀手, 蒙面人﹒甲。
若加入 RemoveNPC(c); 的话, 在诊断任务开始后冷燕就会离开
UID 93018
发表于 2010-3-21 11:373#
上文“诊断”是错别字,改为“这段”

如果在
ChangeBehavior(c, "follow", player);
Perform(c, "pause", 8);
Perform(c, "aggress");
Perform(c, "say", "你有本事就来呀!");
Perform(c, "pause", 10);
Perform(c, "faceto", c3);
中的Perform(c, "pause", 10);或Perform(c, "pause", 8);前加上Perform(c, "use", id);
就会使用道具,id是道具代码
具体是::::::
1.肉包
2.华佗(提高生命上限50)
3.铜皮(普通的加防)
4.嗜战(普通的加攻)
5.猫足(普通的加速)
6.声响(不知道)
7.风水(不知道)
8.气元(不知道)
9.光芒(一样)
10.减移
11.减血
12.减血
13.减移
14.减血
15.500HP
16.50HP大肉包
17.10HP小肉包
18.减血
19.烈焰(指虎加攻的大招)
20.699HP(生命上限)
29.围脖(圣诞,加100防御,不适用于1.07鬼组版,100防没多少人打得动)
30.手套(圣诞,加125攻击,不适用于1.07鬼组版)
31.跑鞋(圣诞,加速,不适用于1.07鬼组版)
32.礼帽(圣诞,未知,不适用于1.07鬼组版)
33.手记(圣诞,不断加气,不适用于1.07鬼组版)
27.雪人

例:改完之后变为后(任务流程函数是从下往上的顺序读取)
ChangeBehavior(c, "follow", player);
Perform(c, "pause", 8);
Perform(c, "aggress");
Perform(c, "use", 3);
Perform(c, "use", 4);
Perform(c, "say", "你有本事就来呀!");
Perform(c, "pause", 10);
Perform(c, "faceto", c3);

改完之后变为冷燕说完"你有本事就来呀!"后,冷燕加攻击和防御.
UID 93018
发表于 2010-3-21 12:064#
谢谢LZ呀:youxihou1: :youxihou1:
UID 93287
发表于 2010-3-21 12:345#
你可以在开头找到
int trg0 = 0;
int trg1 = 0;
int trg2 = 0;
int trg3 = 0;
int trg4 = 0;
int trg5 = 0;
如果要增加一个任务流程,就在int trg5 = 0后加上int trg6 = 0不然前后不对应就会出错。然后该怎么改????。
UID 93018
发表于 2010-3-22 00:576#
很好的帖子顶LZ...:youxihou1: :youxihou1:
签名:
UID 52780
发表于 2010-3-22 12:427#
我写的不完整,建议去 http://www.yfzz.net/showtopic-219510.html 去看看,那有很多这没有的东西,我就是根据那里的东西研究的
UID 93018
发表于 2010-3-28 11:288#
谢谢啦,刚学着该
UID 93926
发表于 2010-5-20 10:169#
谢谢LZ呀
UID 96493
发表于 2012-9-16 02:2710#
加int trg6=0可以;实际上int **=0;任意字符串都可以.
然后相加一个流程,就加if (trg6 == 0)这个必须是一开始就发生的.
要是想不一开始发生.就trg6 == 1.让trg5=*的命令里带上trg6=1;就可以实现连接.
最上面那个是宣告玩家.
在一开始宣告player.它就相当于c
player<0或者c<0都是指这个场景中不存在这个物品或人物.他的值就是负的.
这个作为条件,return指的是进程.
0应该指开始
(这个真不知道,我就知道应该是开始)
签名:右手阎罗
UID 87841
共 10 楼

关于这个存档

本页内容为历史存档,已关闭一切写操作。附件仅展示文件信息,不提供下载。内容如涉侵权或不当,请联系 server@yfzz.net 下架。

可以做的事:浏览版块、阅读主题与楼层、查看图片附件、按标题或作者搜索、打开用户资料页。
不能做的事:注册、登录、发帖、回复、引用、评分、私信、收藏;压缩包等附件不提供下载——存档版只展示文件信息。

数据截至 2021-02-05;附件约有 30–40% 的原文件未能保存,页面上以「已丢失」标注。2009 年前的不少图片是外链图床,原图床已关闭,页面会显示失效占位。
隐龙轩QQ群:点此查看

26,823 主题 / 280,734 帖 / 17,145 位发过言的会员 · 数据最后更新 2021-02-05

粤ICP备2024318274号-1