烽烟四起挂机升刀!
//1. 黑色水晶戒指 2. 骷髅戒指 3. 珊瑚戒指 4. 巨龙戒指
//5. 红叶血环 6. 力量戒指 7. 死神手套 8. 魔鬼项链
//9. 蓝翡翠项链 10. 荣耀项链 11. 幽灵项链 12. 勇士项链
//13. 魅力戒指 14. 火玉戒指 15. 紫碧螺 16. 黑檀手镯
//17. 思贝儿手镯 18. 放大镜 19. 愤怒之钟 20. 五彩项链
//21. 震天项链 22. 珍珠戒指 23. 道德戒指 24. 天鸣戒指
//25. 泰坦戒指 26. 三眼手镯 27. 凤凰明珠 28. 竹笛
//29. 莲花宝镜 30. 遗魂项链 31. 银镜项链 32. 巨龙戒指
//33. 金戒指 34. 金手镯 35. 蛇眼戒指 36. 坚固手套
//37. 幽灵手套 38. 技巧项链
array ar_materials=allocate_array(15);
mapping mp_material;
// 1 -> 2 级别的材料
ar_materials[0] = ([
"jewelrys" : 13, //首饰代码,参考上表
"jewelrys_a" : "5", //首饰数量
"irons": "3" //黑铁数量
]);
// 2 -> 3 级别的材料
ar_materials[1] = ([
"jewelrys" : 13,
"jewelrys_a" : "5",
"irons": "3"
]);
// 3 -> 4 级别的材料
ar_materials[2] = ([
"jewelrys" : 13,
"jewelrys_a" : "5",
"irons": "3"
]);
// 4 -> 5 级别的材料
ar_materials[3] = ([
"jewelrys" : 13,
"jewelrys_a" : "6",
"irons": "3"
]);
// 5 -> 6 级别的材料
ar_materials[4] = ([
"jewelrys" : 13,
"jewelrys_a" : "6",
"irons": "4"
]);
// 6 -> 7 级别的材料
ar_materials[5] = ([
"jewelrys" : 14,
"jewelrys_a" : "6",
"irons": "4"
]);
// 7 -> 8 级别的材料
ar_materials[6] = ([
"jewelrys" : 14,
"jewelrys_a" : "7",
"irons": "4"
]);
// 8 -> 9 级别的材料
ar_materials[7] = ([
"jewelrys" : 14,
"jewelrys_a" : "7",
"irons": "5"
]);
// 9 -> 10 级别的材料
ar_materials[8] = ([
"jewelrys" : 15,
"jewelrys_a" : "7",
"irons": "5"
]);
// 10 -> 11 级别的材料
ar_materials[9] = ([
"jewelrys" : 15,
"jewelrys_a" : "8",
"irons": "5"
]);
// 11 -> 12 级别的材料
ar_materials[10] = ([
"jewelrys" : 15,
"jewelrys_a" : "8",
"irons": "6"
]);
// 12 -> 13 级别的材料
ar_materials[11] = ([
"jewelrys" : 19,
"jewelrys_a" : "8",
"irons": "6"
]);
// 13 -> 14 级别的材料
ar_materials[12] = ([
"jewelrys" : 19,
"jewelrys_a" : "9",
"irons": "6"
]);
// 14 -> 15 级别的材料
ar_materials[13] = ([
"jewelrys" : 19,
"jewelrys_a" : "9",
"irons": "7"
]);
// 15 -> 16 级别的材料
ar_materials[14] = ([
"jewelrys" : 20,
"jewelrys_a" : "10",
"irons": "8"
]);
// 设置炼制内容:魔法、破坏、元素
#define FORGE_TYPE "元素"
// 设置元素:火、冰、雷、风、神圣、暗黑、幻影
#define FORGE_ATOM "雷"
// 系统设置 - 一般情况下不需要修改
#define FORGE_NPC_NAME "啊翔"
#define WEAPON_NPC_NAME "老胡"
#define PREPARE_CITY "银杏山谷"
#define FORGE_CITY "沙巴克城"
#define IRON_NAME "黑铁"
#define HIT_NPC_NAME "多多"
// 快速卖掉物品
#define QUICKLY 1
#define GET_QUAL(x) (((x) + 500) / 1000)
// 不能保存的物品
array excluded_items = ({ "金创药(中)", "金创药(大)", "魔法药(中)",
"回城卷", "随机传送卷", "金创药(特)"});
mapping forge_cmd=([]);
forge_cmd["破坏"]="@Refine_DC";
forge_cmd["元素"]="@Refine_Atom";
forge_cmd["魔法"]="@Refine_MC";
forge_cmd["火"]="@Refine_Fire";
forge_cmd["冰"]="@Refine_Ice";
forge_cmd["雷"]="@Refine_Light";
forge_cmd["风"]="@Refine_Wind";
forge_cmd["神圣"]="@Refine_Holy";
forge_cmd["暗黑"]="@Refine_Dark";
forge_cmd["幻影"]="@Refine_Pantom";
mapping hit_npc=([]);
hit_npc["多多"]=({211, 183});
hit_npc["老胡"]=({195, 183});
hit_npc["俞公"]=({203, 197});
hit_npc["晶晶"]=({204, 196});
hit_npc["惠莲"]=({214, 128});
hit_npc["双喜"]=({229, 150});
hit_npc["园老板"]=({229, 168});
int weapon_id; //升级武器的ID
int L_weapon_up=0; //武器是否可以升级全局变量,末升级=0,能升级=1
int smart_prepare_jewelrys()
{
mapping mp_npc;
int weapon_level=(int)(me()["equip"][1]["weapon_level"]-1.2);
tell_user("炼制武器:开始购买黑铁!");
if(close_to_npc("jewelry", &mp_npc))
{
sell_item(({ ITEM_RING, ITEM_WRIST, ITEM_NECKLACE }), mp_npc, 0, 1);
talk_to(mp_npc);
talk_to(mp_npc,1);
current_menu[3]["action"]= ("@武器类+");
talk_to(mp_npc,1);
talk_to(mp_npc,"@goumaiy(黑铁,1100)");
talk_to(mp_npc,1,ar_materials[weapon_level]["irons"]);
talk_to(mp_npc,"@进行购买");
}
return 1;
}
int take_irons()
{
mapping mp_npc;
int weapon_level=(int)(me()["equip"][1]["weapon_level"]-1.2);
tell_user("炼制武器:开始购买首饰!");
if(close_to_npc("jewelry", &mp_npc))
{
talk_to(mp_npc);
talk_to(mp_npc,1);
talk_to(mp_npc,"@首饰类+");
talk_to(mp_npc,ar_materials[weapon_level]["jewelrys"]);
talk_to(mp_npc,1,ar_materials[weapon_level]["jewelrys_a"]);
talk_to(mp_npc,"@进行购买");
}
return 1;
}
// 返回身上首饰的 ID,特修完毕以后将重新佩戴这些物品
int get_jewelry_id(string part)
{
mapping item;
if (is_mapping(item = me()["equip"][EQUIP_POS(part)]))
return item["id"];
return 0;
}
int close_to_forge_npc()
{
mapping npc;
if(!goto_city_ex(FORGE_CITY, 0, 0, 6))
{
tell_user("炼制武器:不能到达攻城战地域");
return 0;
}
if(!close_to_npc("weapon", &npc))
{
tell_user("炼制武器:不能到达老胡旁边\n");
return 0;
}
return 1;
}
void forge()
{
tell_user("炼制武器:开始炼制武器");
talk_to(FORGE_NPC_NAME);
talk_to(FORGE_NPC_NAME, "@Refine_Cmd");
talk_to(FORGE_NPC_NAME, forge_cmd[FORGE_TYPE]);
if(FORGE_TYPE=="元素")
talk_to(FORGE_NPC_NAME, forge_cmd[FORGE_ATOM]);
tell_user("炼制武器:取回武器");
talk_to(FORGE_NPC_NAME);
talk_to(FORGE_NPC_NAME, "@GetBack_Cmd");
}
int forge_hit()
{
mapping npc;
close_to_npc("jewelry", &npc);
unride();
walk_close_to(hit_npc[HIT_NPC_NAME][0], hit_npc[HIT_NPC_NAME][1], 1);
hit(HIT_NPC_NAME);
return 1;
}
int auto_forge()
{
tell_user("炼制武器:开始练刀!");
weapon_id=me()["equip"][1]["id"];
if(!goto_city(PREPARE_CITY,0,0))
{
tell_user("炼制武器:不能到达银杏山谷");
return 0;
}
if(!smart_prepare_jewelrys())
{
tell_user("炼制武器:没有买到合适的黑铁");
return 0;
}
if(!take_irons())
{
tell_user("炼制武器:没有取到合适的首饰");
return 0;
}
if(!close_to_forge_npc())
{
tell_user("炼制武器:不能到达练刀师傅身旁");
return 0;
}
forge();
L_weapon_up=0;
equip(weapon_id);
forge_hit();
return 1;
}
int is_need_forge()
{
if(me()["equip"][1]["weapon_level"] <= 16.1 &&
L_weapon_up>2)
return 1;
return 0;
}
void on_acquire_exp(int got_exp, int weapon_exp)
{
if(got_exp>10&&weapon_exp==0)
{
if(L_weapon_up<10)
{
if(L_weapon_up==3)
{
tell_user("可以炼制武器了");
}
L_weapon_up++;
}
}
else
{
if(L_weapon_up)
L_weapon_up=0;
}
}
int on_prepare_for_quest()
{
if(is_need_forge())
{
// 本次准备设置包裹空余数量为 100 以便升级武器
keep_bag_spare = 100;
printf("设置包裹空余数量为 100");
}
// 采用缺省流程整备
return 0;
}
void on_post_prepare_for_quest()
{
if(is_need_forge())
{
auto_forge();
}
eapply("左手戒指");
say("@允许私聊");
}
void on_applied_item(mapping item)
{
if (item["name"] == "回城卷")
{
say("@拒绝私聊");
return 0;
}
}