[wizs] 副本修改纪录

楼主: laechan (挥泪斩马云)   2015-11-15 15:47:00
带了印出来的程式码回家,结果忘记带回来...
不过初步在 instance_ob.c 有发现到一些写法有问题,今天起就以
修改 instance 为主,有些程式码视情况我会再印出来一次。
===========================================================
/std/new_ob/instance/instance_ob.c
总之先备份。
程式前面几行的全域变量初始化宣告其实没用,但还是保留,等以后
再移除。(初始化要在 create 函数里面做才有用)
instance_data() 函数
回传种类的设定部份
instance_datas (与 instance_data 传回一样的值)
instance_name (与 instance_names 传回一样的值)
instance_mob_names (与 instance_mob_name 传回一样的值)
switch 时原本 default 是传回 all,改成 "all" 时才传回 all,
避免产生不必要的错误。
case "del-ppl_instance":
.
.
else
map_delete(ppl_instance[0],str2);
}
以上在当初测试的时候没发现,测试时也没有产生错误,这是因为
最初只有我一人做测试。ppl_instance 是 mapping 资料,不可能
使用 ppl_instance[0] 这样的给值方式。
问题来了,不是给 0 的话,要给什么? 我猜应该是 s0,也就是删
掉 s0 这个副本的 str2(玩家name) 资料。
create_instance() 函数
某些大段落的 /* */ 移除,那些是以前的写法,用来做为与新写
法实装初期的对照用,现在已用不到。
有几个 foreach 内有 if(instance_virtual) 的判断,里面做的
事很多重复了,移出 foreach 之外。
多宣告一个 vroom 物件变量,用来存 virtual_room。
以上可减少 create_instance 时的负担。
create();//呼叫前先初始化...不然mapping的资料有变更就跑了...by justin
这一行则可能会有问题,因为副本每被一个玩家呼叫加载一次,就
会呼叫一次这个函数,而该函数会做“固定的”副本脚本资料设定
,理论上,固定的资料不应该会被变更,这是原则,假设有固定资
料会变更,可以使用底下的做法
if(function_exists("reset_data",this_ob))
reset_data();
这样就可利用自订的 reset_data 函数,针对性的只初始化部份会
被变更的固定资料。
不过这个先保留。
该 int 函数在最后一行补上 return 1;
最后测试,我以 /std/new_ob/instance/laechan/001 的白瓦镇黑
熊副本为例,在 instance -enter 1 时会呼叫 create_instance
函数,这时会做底下
idata["xxxxx"]=instance_comm["xxxxx"]; (xxxxx=1)
接着在进去后对第一个房间做底下的设定
> call here;set;"xxxxx";10
然后再做底下
> call 001;instance_data;"all"
房间(/std/new_ob/instance/laechan/001)-> instance_data(
"all" ) = ([
"instance_names" :"白瓦镇黑熊讨伐任务副本",
"instance_comm" : ([ "xxxxx" : 1 ]),
.
.
])
由上面可确定各副本房间的资料如果变动,不会影响到副本脚本
物件本身已设定的资料。
这里就确定了 create_instance 时呼叫 create 是多余的,真正
应初始化的资料,应该另订函数来做初始化。
暂时发现的问题与待改事项
一、如何从某副本档知道该副本的管理员被设定到哪里?
> npc instance
═════════════════════════════════════
人物名称            人物所在路径               
═════════════════════════════════════
龙潭虎穴副本管理员─绫儿('instan/d/ppl/map/n6e4tin)
狮子山副本管理员─绫儿('instance/d/ppl/map/n3e11)
天蝎洞副本管理员─绫儿('instance/d/ppl/map/n6e11)
血肉长城副本管理员─绫儿('instan/d/ppl/map/n7e9tin)
百足宫副本管理员─绫儿('instance/d/ppl/map/n5e0n)
═════════════════════════════════════
从上面看不出与档案的对应关系,但可以从 npc instance 来增加
显示必要的标记。
二、

Links booklink

Contact Us: admin [ a t ] ucptt.com