作者laechan (眼镜男)
看板mud_sanc
标题Re: [wizs]问题请教(五)
时间Thu Mar 15 19:31:29 2007
※ 引述《amosdeus (幽素)》之铭言:
: 请问有办法在套装的程式下,写出像荣光之钻这类限制型的eq吗?
: 在套装不齐全之前最高只能到xx,凑齐了可以到yy。
: 当然如果要花时间想或是太麻烦您动头脑想,请当我没提这问题!
: 谢谢
: Plain@Sanc
可以啊,只是很麻烦而已(我是指写的人)。
一般来说,如果是我的话,我会挑套装中的某一件来设定
(因为要穿满後才有效果)。
set("sdata",({"suit_data"}));
接下来就可以针对成长的部份去做,例如喂盾,就要去
add_action 一个 喂盾 的指令,然後写对应的函数,在
那其中,如果喂盾到某一等级,可以让套装整体多增加
con 10 以及 str 10,关键程式段就是...
int a,b;
// 先修改 suit_data -> suit_effect -> stat-xxx 的资料
if(!undefinedp(data["suit_data"]["suit_effect"]["stat-con"])
a=data["suit_data"]["suit_effect"]["stat-con"];
if(!undefinedp(data["suit_data"]["suit_effect"]["stat-air"])
b=data["suit_data"]["suit_effect"]["stat-air"];
data["suit_data"]["suit_effect"]["stat-con"]=a+10;
data["suit_data"]["suit_effect"]["stat-air"]=b+10;
// 再修改 suit_data -> suit_ok_effect -> stat-xxx 的资料
if(!undefinedp(data["suit_data"]["suit_ok_effect"]["stat-con"])
a=data["suit_data"]["suit_ok_effect"]["stat-con"];
if(!undefinedp(data["suit_data"]["suit_ok_effect"]["stat-air"])
b=data["suit_data"]["suit_ok_effect"]["stat-air"];
data["suit_data"]["suit_ok_effect"]["stat-con"]=a+10;
data["suit_data"]["suit_ok_effect"]["stat-air"]=b+10;
这样成长前与成长後就会不一样(因为该装备会储存成长後的
suit_data)。
若要方便起见,套装继承档只需增加底下两个函数...
// 修改 suit_effect 专用
// data 为那件 eq 的 data
// v 为正值就是增加, v 为负值就是减少
void change_suit_effect(mapping data,string kind,int v)
{
int a;
if(!undefinedp(data["suit_data"]["suit_effect"][kind]))
a=(int)data["suit_data"]["suit_effect"][kind];
data["suit_data"]["suit_effect"][kind]=a+v;
}
// 修改 suit_ok_effect 专用
// data 为那件 eq 的 data
// v 为正值就是增加, v 为负值就是减少
void change_suit_ok_effect(mapping data,string kind,int v)
{
int a;
if(!undefinedp(data["suit_data"]["suit_ok_effect"][kind]))
a=(int)data["suit_data"]["suit_ok_effect"][kind];
data["suit_data"]["suit_ok_effect"][kind]=a+v;
}
这两个函数我已经加在套装继承档中。
这样要让该件 eq 的套装属性 con多+10 air多+10,只需四行...
change_suit_effect(data,"stat-con",10);
change_suit_effect(data,"stat-air",10);
change_suit_ok_effect(data,"stat-con",10);
change_suit_ok_effect(data,"stat-air",10);
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.225.2.96