完整挂机ACI
很早以前在老论坛下的一个挂机ACI,只用过部分,大家可以拿去参考
int i;
mapping npc;
keep_bag_spare=6;
void change_name()
{
for(i=0;i<sizeof(me()["carry"]);i++)
{
if(me()["carry"]["name"]=="回城券")
{
me()["carry"]["name"]="回城卷";
}
}
}
int on_prepare_for_quest()
{
if((get_item_amount("回城券")+get_item_amount("回城卷"))<3)
{
close_to_npc("item",&npc);
buy_item("回城券",6-(get_item_amount("回城券")+get_item_amount("回城卷")),npc);
}
change_name();
return 0;
}
void on_new_carried(mapping item)
{
if(item["name"]=="回城券"){change_name();}
int is_need_repair(string part, int durability);
void move_to_repair(string mapname);
void done_repair(int back);
void move_to(int z);
string stone="六面神石";
//*****************************************************出发前准备工作
int on_prepare_for_quest()
{
//验证码
string number;
//药水
string life_potion_1 = "金创药(中)";
string mana_potion_1 = "魔法药(中)";
//----------------上面是赋予必要物品标记------------------
//大家还可以给特,大赋予类似标记,但是后面数字不能相同如string life_potion_1 = "金创药(中)"; string life_potion_2 = "金创药(大)";
string life_potion_3 = "金创药(特)";
//开始整备物品,只需要整备药品
//先出售饰品和衣服
//移动到防具店
tell_user("移动到防具店出售防具");
close_to_npc("armor",&npc);
sell_item(({ ITEM_HELMET, ITEM_ARMOR, ITEM_ARMOR_WOMAN }), npc, 0, 1);
// tell_suer("xxx")知识在BBX的ACT窗口显示,没有其他作用
//close_to_npc("xxx",&NPC); 表示移动到某个NPC附近
//sell_item表示出售东西
//其实在BBX里面除非特修理出售装备也要求验证码否则都没有必要加入
//移动到药店
tell_user("移动到药店整备药水");
close_to_npc("potion",&npc);
//出售身上所有药水
sell_item(({ ITEM_POTION }), npc, 0, QUICKLY);
talk_to(npc);
//获得验证码
array b1=({});
array b2=({});
b1=explode(current_menu[5]["content"], "{");
b2=explode(b1[1],"}");
//number是验证码
number=b2[1];
talk_to(npc,"输入验证码",number);
talk_to(npc,"使用");
//上面是获得和输入验证码的代码,是能否挂机的关键,只要是要用到验证码的NPC都可以用
talk_to(npc,"@buy");
//买红(刷新物品)
show_inv(life_potion_1, 0);
buy(life_potion_1,100,npc);
//代码意思是买红 life_potion_1标记为中红根据最上面自己的标记而定,100表示数量,npc大家没必要考证什么意思,只要按照上面格式自己修改相应内容,要注意的是买不同的药品包括买完中再买大,特前要加入刷新代码show_inv(life_potion_1, 0); 里面的标记要注意修改成你后面要买的标记
//买蓝
show_inv(mana_potion_1, 0);
buy(mana_potion_1,need_mana_potion,npc);
//特修装备
tell_user("跑到 243,234");
run_close_to(243,234,6);
// 修理身上装备
tell_user("开始特修");
talk_to("光秀");
talk_to("光秀","衣服");
talk_to("光秀","现在修理");
talk_to("光秀","前一步");
talk_to("光秀","项链");
talk_to("光秀","现在修理");
talk_to("光秀","前一步");
talk_to("光秀","头盔");
talk_to("光秀","现在修理");
talk_to("光秀","前一步");
talk_to("光秀","鞋子");
talk_to("光秀","现在修理");
talk_to("光秀","前一步");
talk_to("光秀","手镯(左)");
talk_to("光秀","现在修理");
talk_to("光秀","前一步");
talk_to("光秀","手镯(右)");
talk_to("光秀","现在修理");
talk_to("光秀","前一步");
talk_to("光秀","戒指(左)");
talk_to("光秀","现在修理");
talk_to("光秀","前一步");
talk_to("光秀","戒指(右)");
talk_to("光秀","现在修理");
//正常没有必要加特修代码除非特修也要求验证
//武器特修
run_close_to(243,234,6);
//括号里面是NPC坐标,大家可以根据不同地图自己设置
talk_to("光秀","特殊修理");
talk_to("光秀","现在修理");
//按照上面格式自己修改NPC名字,如道馆光秀改成铁匠,银杏修改成铁匠师傅
//需要严正的传送石的
//移动到六面神石
run_close_to(243,234,6);
//移动到六面神石附近,号内坐标自己设置最后面的数字表示和坐标的距离
talk_to(stone);
//获得验证码
array b1=({});
array b2=({});
b1=explode(current_menu[5]["content"], "{"};
b2=explode(b1[1],")");
//number是验证码
string number=b2[1];
talk_to(stone,"输入验证码",number);
talk_to(stone,"使用");
talk_to(stone,道馆);
//最后一个表示传送的地点可以自己修改,大部分都修改了地点名字如道 馆,中间是个特殊字符,根据情况自己修改,如果要去
//对话是否挂机的
run_close_to(243,234,6);
//坐标自己改写
talk_to(stone);
talk_to(stone,不<是)
talk_to(stone,道馆);
//如果要去挂牛的牛门口需要验证的
run_close_to(243,234,6);
//坐标自己改写
talk_to(stone);
talk_to(stone,不<是)
talk_to(stone,潘夜神殿);
run_to(692,358)
//意思是跑到坐标692 358位置
talk_to(npc,不<是);
int i;
mapping npc;
keep_bag_spare=6;
void change_name()
{
for(i=0;i<sizeof(me()["carry"]);i++)
{
if(me()["carry"][i]["name"]=="回城券")
{
me()["carry"][i]["name"]="回城卷";
}
}
}
int on_prepare_for_quest()
{
if((get_item_amount("回城券")+get_item_amount("回城卷"))<2)
{
close_to_npc("item",&npc);
buy_item("回城券",6-(get_item_amount("回城卷")+get_item_amount("回城卷")),npc);
}
change_name();
return 0;
}
void on_new_carried(mapping item)
{
if(item["name"]=="回城券"){change_name();}
}
return 0;
//开始挂机
}