飞飞迷 > 源码修改 > 星辰寓言等的对话兑换系统,自己编写!仅供参考

星辰寓言等的对话兑换系统,自己编写!仅供参考

来源:shevechco 发布时间:2015-07-04 浏览:


以下仅供V19文件参考,自己未测试,有两个部分未完成,请自行参考我的代码完成,但是应该是没有问题的。
NpcScript.cpp找到:
40,
41,
42,
43,
865,
866,
下面添加
//兑换
1732,
1736,
1737,
1738,
1739,
1740,
1741,
1742,
1743,
1744,1747,
1748,
1749,
1750,
1751,
1752,
1753,
1754,
1755,1757,
1758,
1759,1761,
1762,
1763,
1764,
1765,1767,
1768,
1769,
1770,
1771,
1772,
1776,
1777,
1778,
1779,
找到
BOOL MakeKeyIndex()
之前添加:
//兑换
void CNpcScript::mafl_duihuan_0()
{
Speak( NpcId(), 1730 );
SetScriptTimer( 10 );
}
void CNpcScript::mafl_duihuan_1()
{
Say(1731);
AddKey(1732);
AddKey(1736);
AddKey(1747);
AddKey(1757);
AddKey(1761);
AddKey(1767);
AddKey(1776);
}
void CNpcScript::mafl_duihuan_1731()
{
Say(1733);
Say(1734);
Say(1735);
}
void CNpcScript::mafl_duihuan_1736()
{
Say(1745);
Say(1746);
}
void CNpcScript::mafl_duihuan_1737()
{
if (GetItemNum(3200) < 600)
{
SayString("你还未收集足够的奇异金属,请收集齐后再次进行兑换!");
}else{
RemoveItem(3200,600);//移除
CreateItem(60120,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1738()
{
if (GetItemNum(3201) < 600)
{
SayString("你还未收集足够的绿磷石矿,请收集齐后再次进行兑换!");
}else{
RemoveItem(3201,600);//移除
CreateItem(60121,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1739()
{
if (GetItemNum(3202) < 600)
{
SayString("你还未收集足够的炽红石花,请收集齐后再次进行兑换!");
}else{
RemoveItem(3202,600);//移除
CreateItem(60122,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1740()
{
if (GetItemNum(3203) < 600)
{
SayString("你还未收集足够的石电磁矿,请收集齐后再次进行兑换!");
}else{
RemoveItem(3203,600);//移除
CreateItem(60123,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1741()
{
if (GetItemNum(3200) < 1000)
{
SayString("你还未收集足够的奇异金属,请收集齐后再次进行兑换!");
}else
{
switch( Random ( 2 ) )
{
case 0:
{
RemoveItem(3200,1000);//移除
CreateItem(23920,1);
Say(1781);
}
break;
case 1:
{
RemoveItem(3200,1000);//移除
CreateItem(23921,1);
Say(1781);
}
break;
case 2:
{
RemoveItem(3200,1000);//移除
CreateItem(23922,1);
Say(1781);
}
break;
}
}
}
void CNpcScript::mafl_duihuan_1742()
{
if (GetItemNum(3201) < 1000)
{
SayString("你还未收集足够的绿磷石矿,请收集齐后再次进行兑换!");
}else
{
switch( Random ( 2 ) )
{
case 0:
{
RemoveItem(3200,1000);//移除
CreateItem(23920,1);
Say(1781);
}
break;
case 1:
{
RemoveItem(3200,1000);//移除
CreateItem(23921,1);
Say(1781);
}
break;
case 2:
{
RemoveItem(3200,1000);//移除
CreateItem(23922,1);
Say(1781);
}
break;
}
}
}
void CNpcScript::mafl_duihuan_1743()
{
if (GetItemNum(3200) < 1000)
{
SayString("你还未收集足够的炽红石花,请收集齐后再次进行兑换!");
}else
{
switch( Random ( 2 ) )
{
case 0:
{
RemoveItem(3200,1000);//移除
CreateItem(23920,1);
Say(1781);
}
break;
case 1:
{
RemoveItem(3200,1000);//移除
CreateItem(23921,1);
Say(1781);
}
break;
case 2:
{
RemoveItem(3200,1000);//移除
CreateItem(23922,1);
Say(1781);
}
break;
}
}
}
void CNpcScript::mafl_duihuan_1744()
{
if (GetItemNum(3200) < 1000)
{
SayString("你还未收集足够的石电磁矿,请收集齐后再次进行兑换!");
}else{
switch( Random ( 2 ) )
{
case 0:
{
RemoveItem(3200,1000);//移除
CreateItem(23920,1);
Say(1781);
}
break;
case 1:
{
RemoveItem(3200,1000);//移除
CreateItem(23921,1);
Say(1781);
}
break;
case 2:
{
RemoveItem(3200,1000);//移除
CreateItem(23922,1);
Say(1781);
}
break;
}
}
}
void CNpcScript::mafl_duihuan_1747()
{
Say(1757);
}
void CNpcScript::mafl_duihuan_1748()
{
if (GetItemNum(26918) < 5000)
{
SayString("你还未收集足够的福袋,请收集齐后再次进行兑换!");
}else{
RemoveItem(26918,5000);//移除
CreateItem(23381,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1749()
{
if (GetItemNum(26918) < 5000)
{
SayString("你还未收集足够的福袋,请收集齐后再次进行兑换!");
}else{
RemoveItem(26918,5000);//移除
CreateItem(23380,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1750()
{
if (GetItemNum(26918) < 5000)
{
SayString("你还未收集足够的福袋,请收集齐后再次进行兑换!");
}else{
RemoveItem(26918,5000);//移除
CreateItem(23285,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1751()
{
if (GetItemNum(26918) < 5000)
{
SayString("你还未收集足够的福袋,请收集齐后再次进行兑换!");
}else{
RemoveItem(26918,5000);//移除
CreateItem(23284,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1752()
{
if (GetItemNum(30311) < 5000)
{
SayString("你还未收集足够的新年福袋,请收集齐后再次进行兑换!");
}else{
RemoveItem(30311,5000);//移除
CreateItem(23381,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1753()
{
if (GetItemNum(30311) < 5000)
{
SayString("你还未收集足够的新年福袋,请收集齐后再次进行兑换!");
}else{
RemoveItem(30311,5000);//移除
CreateItem(23069,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1754()
{
if (GetItemNum(30311) < 5000)
{
SayString("你还未收集足够的新年福袋,请收集齐后再次进行兑换!");
}else{
RemoveItem(30311,5000);//移除
CreateItem(23260,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1755()
{
if (GetItemNum(30311) < 5000)
{
SayString("你还未收集足够的新年福袋,请收集齐后再次进行兑换!");
}else{
RemoveItem(30311,5000);//移除
CreateItem(23261,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1757()
{
Say(1760);
}
void CNpcScript::mafl_duihuan_1758()
{
if (GetItemNum(23751) < 1000)
{
SayString("你还未收集足够红章,请收集齐后再次进行兑换!");
}else{
switch( Random ( 2 ) )
{
case 0:
{
RemoveItem(23751,1000);//移除
CreateItem(23680,1);
Say(1781);
}
break;
case 1:
{
RemoveItem(23751,1000);//移除
CreateItem(23681,1);
Say(1781);
}
break;
case 2:
{
RemoveItem(23751,1000);//移除
CreateItem(23682,1);
Say(1781);
}
break;
}
}
}
void CNpcScript::mafl_duihuan_1759()
{
if (GetItemNum(23750) < 1000)
{
SayString("你还未收集足够的蓝章,请收集齐后再次进行兑换!");
}else{
switch( Random ( 2 ) )
{
case 0:
{
RemoveItem(23750,1000);//移除
CreateItem(23680,1);
Say(1781);
}
break;
case 1:
{
RemoveItem(23750,1000);//移除
CreateItem(23681,1);
Say(1781);
}
break;
case 2:
{
RemoveItem(23750,1000);//移除
CreateItem(23682,1);
Say(1781);
}
break;
}
}
}
void CNpcScript::mafl_duihuan_1762()
{
Say(1766);
}
void CNpcScript::mafl_duihuan_1767()
{
Say(1773);
Say(1774);
Say(1775);
}
void CNpcScript::mafl_duihuan_1768()
{
if (GetItemNum(23752) < 1)
{
SayString("你还未收集到一张斗士的证明,请无法进行兑换!");
}else{
RemoveItem(23752,1);//移除
CreateItem(23712,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1769()
{
if (GetItemNum(23752) < 1)
{
SayString("你还未收集到一张斗士的证明,请无法进行兑换!");
}else{
RemoveItem(23752,1);//移除
CreateItem(23711,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1770()
{
if (GetItemNum(23752) < 1)
{
SayString("你还未收集到一张斗士的证明,请无法进行兑换!");
}else{
RemoveItem(23752,1);//移除
CreateItem(23710,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1771()
{
if (GetItemNum(23752) < 1)
{
SayString("你还未收集到一张斗士的证明,请无法进行兑换!");
}else{
RemoveItem(23752,1);//移除
CreateItem(23709,1);
Say(1781);
}
}
void CNpcScript::mafl_duihuan_1772()
{
if (GetItemNum(23709) < 1 && GetItemNum(23710) < 1 && GetItemNum(23711) < 1 && GetItemNum(23712) < 1)
{
SayString("你没有王章的证明(红)、王章的证明(黄)、王章的证明(蓝)、王章的证明(绿)各一张,请收集齐后再次进行兑换!");
}else{
switch( Random ( 9 ) )
{
case 0:
{
RemoveItem(23709,1);
RemoveItem(23710,1);
RemoveItem(23711,1);
RemoveItem(23712,1);
CreateItem(23554,1);
Say(1781);
}
break;
case 1:
{
RemoveItem(23709,1);
RemoveItem(23710,1);
RemoveItem(23711,1);
RemoveItem(23712,1);
CreateItem(23555,1);
Say(1781);
}
break;
case 2:
{
RemoveItem(23709,1);
RemoveItem(23710,1);
RemoveItem(23711,1);
RemoveItem(23712,1);
CreateItem(23556,1);
Say(1781);
}
break;
case 3:
{
RemoveItem(23709,1);
RemoveItem(23710,1);
RemoveItem(23711,1);
RemoveItem(23712,1);
CreateItem(23557,1);
Say(1781);
}
break;
case 4:
{
RemoveItem(23709,1);
RemoveItem(23710,1);
RemoveItem(23711,1);
RemoveItem(23712,1);
CreateItem(23558,1);
Say(1781);
}
break;
case 5:
{
RemoveItem(23709,1);
RemoveItem(23710,1);
RemoveItem(23711,1);
RemoveItem(23712,1);
CreateItem(23559,1);
Say(1781);
}
break;
case 6:
{
RemoveItem(23709,1);
RemoveItem(23710,1);
RemoveItem(23711,1);
RemoveItem(23712,1);
CreateItem(23560,1);
Say(1781);
}
break;
case 7:
{
RemoveItem(23709,1);
RemoveItem(23710,1);
RemoveItem(23711,1);
RemoveItem(23712,1);
CreateItem(23561,1);
Say(1781);
}
break;
case 8:
{
RemoveItem(23709,1);
RemoveItem(23710,1);
RemoveItem(23711,1);
RemoveItem(23712,1);
CreateItem(23562,1);
Say(1781);
}
break;
case 9:
{
RemoveItem(23709,1);
RemoveItem(23710,1);
RemoveItem(23711,1);
RemoveItem(23712,1);
CreateItem(23563,1);
Say(1781);
}
break;
}
}
}
void CNpcScript::mafl_duihuan_1776()
{
Say(1780);
}
NpcScript.h
找到
};
#endif
之前添加:
/*************************兑换*************************/
void mafl_duihuan_0();
void mafl_duihuan_1();
void mafl_duihuan_1731();
void mafl_duihuan_1736();
void mafl_duihuan_1737();
void mafl_duihuan_1738();
void mafl_duihuan_1739();
void mafl_duihuan_1740();
void mafl_duihuan_1741();
void mafl_duihuan_1742();
void mafl_duihuan_1743();
void mafl_duihuan_1744();
void mafl_duihuan_1747();
void mafl_duihuan_1748();
void mafl_duihuan_1749();
void mafl_duihuan_1750();
void mafl_duihuan_1751();
void mafl_duihuan_1752();
void mafl_duihuan_1753();
void mafl_duihuan_1754();
void mafl_duihuan_1755();
void mafl_duihuan_1757();
void mafl_duihuan_1758();
void mafl_duihuan_1759();
void mafl_duihuan_1762();
void mafl_duihuan_1767();
void mafl_duihuan_1768();
void mafl_duihuan_1769();
void mafl_duihuan_1770();
void mafl_duihuan_1771();
void mafl_duihuan_1772();
void mafl_duihuan_1776();
/*************************兑换*************************/
NpcScriptHelper.cpp
找到
};
static map< string, PFN > g_functions;
之前添加:
/*************************兑换*************************/
{"mafl_duihuan_0", &CNpcScript::mafl_duihuan_0},
{"mafl_duihuan_1", &CNpcScript::mafl_duihuan_1},
{"mafl_duihuan_1731", &CNpcScript::mafl_duihuan_1731},
{"mafl_duihuan_1736", &CNpcScript::mafl_duihuan_1736},
{"mafl_duihuan_1737", &CNpcScript::mafl_duihuan_1737},
{"mafl_duihuan_1738", &CNpcScript::mafl_duihuan_1738},
{"mafl_duihuan_1739", &CNpcScript::mafl_duihuan_1739},
{"mafl_duihuan_1740", &CNpcScript::mafl_duihuan_1740},
{"mafl_duihuan_1741", &CNpcScript::mafl_duihuan_1741},
{"mafl_duihuan_1742", &CNpcScript::mafl_duihuan_1742},
{"mafl_duihuan_1743", &CNpcScript::mafl_duihuan_1743},
{"mafl_duihuan_1744", &CNpcScript::mafl_duihuan_1744},
{"mafl_duihuan_1747", &CNpcScript::mafl_duihuan_1747},
{"mafl_duihuan_1748", &CNpcScript::mafl_duihuan_1748},
{"mafl_duihuan_1749", &CNpcScript::mafl_duihuan_1749},
{"mafl_duihuan_1750", &CNpcScript::mafl_duihuan_1750},
{"mafl_duihuan_1751", &CNpcScript::mafl_duihuan_1751},
{"mafl_duihuan_1752", &CNpcScript::mafl_duihuan_1752},
{"mafl_duihuan_1753", &CNpcScript::mafl_duihuan_1753},
{"mafl_duihuan_1754", &CNpcScript::mafl_duihuan_1754},
{"mafl_duihuan_1755", &CNpcScript::mafl_duihuan_1755},
{"mafl_duihuan_1757", &CNpcScript::mafl_duihuan_1757},
{"mafl_duihuan_1758", &CNpcScript::mafl_duihuan_1758},
{"mafl_duihuan_1759", &CNpcScript::mafl_duihuan_1759},
{"mafl_duihuan_1762", &CNpcScript::mafl_duihuan_1762},
{"mafl_duihuan_1767", &CNpcScript::mafl_duihuan_1767},
{"mafl_duihuan_1768", &CNpcScript::mafl_duihuan_1768},
{"mafl_duihuan_1769", &CNpcScript::mafl_duihuan_1769},
{"mafl_duihuan_1770", &CNpcScript::mafl_duihuan_1770},
{"mafl_duihuan_1771", &CNpcScript::mafl_duihuan_1771},
{"mafl_duihuan_1772", &CNpcScript::mafl_duihuan_1772},
{"mafl_duihuan_1776", &CNpcScript::mafl_duihuan_1776},
/*************************兑换*************************/
重新编译对话的DLL文件,然后服务端文件WorldDialog.txt文件,1731行开始添加以下对话:
欢迎来到巨峰飞飞,这里是V19版,希望能给带来快乐的游戏体验!
你好,我是兑换使者,专门帮助进行兑换工作,你可以通过一些途径获取到所需的物品,然后到我这里进行兑换!
灵兽说明
游戏中每片大陆都生存着一种为数不多的灵兽,灵兽出现在大路上固定的区域,每隔指定的时间会自动刷新。
杀死灵兽后通过各种采集器获得灵兽所具备的特有资源,主要是各种矿石。
帕里灵兽产出的矿石为绿磷石矿,晨光灵兽产出的矿石为炽红石花,达肯灵兽产出的矿石为奇异金属,来斯灵兽产出的矿石为石电磁矿。每一种矿物都有他们兑换物品,要怎么利用矿石就看你的需要了。
矿石兑换
KEY_DH_1
KEY_DH_2
KEY_DH_3
KEY_DH_4
KEY_DH_5
KEY_DH_6
KEY_DH_7
KEY_DH_8
请问你要兑换那种矿石呢?每600个矿石可以兑换下列物品!\n [奇异金属->超强攻击眼镜][KEY_DH_5]\n [绿磷石矿->超强防御眼镜][KEY_DH_6]\n [炽红石花->超强攻击眼镜][KEY_DH_7]\n [石电磁矿->超强防御眼镜][KEY_DH_8]
每组矿石1000个可以随机兑换出以下3种物品之一:\n 麋鹿角戒1个,麋鹿项链1个,麋鹿耳环1个。\n [兑换1000个奇异金属][KEY_DHKS_5]\n [兑换1000个绿磷石矿][KEY_DHKS_6]\n [兑换1000个炽红石花][KEY_DHKS_7]\n [兑换1000个石电磁矿][KEY_DHKS_8]
福袋兑换
KEY_DH_9
KEY_DH_10
KEY_DH_11
KEY_DH_12
KEY_DH_13
KEY_DH_14
KEY_DH_15
KEY_DH_16
收集福袋喽,收集福袋和新年福袋可以在我这里进行兑换,赶紧整理行装去收集吧!\n 5000个福袋可以兑换以下物品: \n[男水滴木绒套装][KEY_DH_9]  [女水滴木绒套装][KEY_DH_10]\n[男罗马竞技套装][KEY_DH_11]  [女罗马竞技套装][KEY_DH_12]\n 5000个新年福袋可以兑换以下物品: \n[男甜美套装][KEY_DH_13]  [女甜美套装][KEY_DH_14]\n[男森巴套装][KEY_DH_15]  [女森巴套装][KEY_DH_16]
披风兑换
KEY_DH_17
KEY_DH_18
想拥有强大而潇洒的披风吗?也许我可以帮你实现这个小小的心愿。\n 1000个红章或者蓝章兑换物攻的龙王披风、爆击的龙王披风、魔攻的龙王披风三种之中随机一件\n 红章1000个->[我要兑换][KEY_DH_17]\n 蓝章1000个->[我要兑换][KEY_DH_18]
特殊卷轴兑换
KEY_DH_19
KEY_DH_20
KEY_DH_21
KEY_DH_22
暂时未开放特殊卷轴兑换,详情请关注后期更新!
斗士证明兑换
KEY_DH_23
KEY_DH_24
KEY_DH_25
KEY_DH_26
KEY_DH_27
远古时期只有强大战士才能征服草原上的最强BOSS,赶紧行动吧,勇士们,挥舞起你们手中的武器挑战凯伦伊草原最强BOSS#b拉肯巴勒卡#nb。从它的身上收集一张斗士的证明,来我这里证明你是一个合格的勇者。
合格的勇士们我将为你们准备一张王室证书赠送给你。\n 斗士证明->王室证书(红) [确定我要兑换][KEY_DH_23]\n 斗士证明->王室证书(黄) [确定我要兑换][KEY_DH_24]\n 斗士证明->王室证书(蓝) [确定我要兑换][KEY_DH_25]\n 斗士证明->王室证书(绿) [确定我要兑换][KEY_DH_26]
收集4张不同颜色的王室证书我将随机送一把王室武器作为礼物\n 我已收集齐王室证书(红),王室证书(黄),王室证书(蓝),王室证书(绿)\n [我想兑换][KEY_DH_27]
征服者的證明
KEY_DH_28
KEY_DH_29
KEY_DH_30
暂时未开放特征服者的證明系统任务,详情请关注后期更新!
#b#cff0000ff你已经兑换成功!#nb#nc\n#b#cff0000ff如果还想兑换其他东西,请再次收集物品找我进行兑换!#nb#nc
#b#cff0000ff对不起,你还未收集兑换所需的物品,请收集齐后再次进行兑换!#nb#nc
服务端NPC文件请自行添加,对话定义为m_szDialog= "MaFl_DuiHuan.txt",请自行添加到NPC文件内。

历史版本

  • V19.飞你莫属
  • 11-11-24V18.翱翔重生
  • 11-04-13V17.龙的逆袭
  • 10-12-13V16.神采飞扬
  • 10-04-16V15.羽化飞天
  • 09-11-04V14.翼之降临