(转载)魔兽世界任务制作教学
现在说下既然你要做任务,你必须知道数据库中哪些东西是需要你用到的:
----------------------------------------------
creature_involvedrelation 完成任务NPC.
creature_questrelation 开始任务NPC.
quest_templatege表任务内容
-----------------------------------------以上内容为复制物品------------------------------------------
现在给大家解释,部分表的作用和使用方法!
-----------------------------------------creature_involvedrelation-------------------------------------
这个表有2个项目可以让用户更改它决定了任务完成时该任务交给哪个NPC
ID-----》任务的ID对应creature_template中的ENTRY编号,
QUEST-----》对应quest_templatege中的NETRY编号,
根据这2个属性的解释大家很容易就明白这个表的使用方法了,现在举个例子:比如你编辑了一个任务任务ID是XXXX 这个任务完成是要交个YYY这个NPC那导入SQL时候就要使用
INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (YYY, XXXX);
这样,在完成XXXX这个任务的时候你就需要跑到YYY这个NPC那交任务了。
------------------------------------------creature_questrelation---------------------------------
这个表同上面讲的表的意思一样,这个表决定了任务开始的NPC,表的结构和上表结构一样到,导入语句为:
INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (YYY, XXXX);
意思就是当玩家跑到YYY这个NPC这的时候会看到感叹号,可以接受到XXXX这个任务,我想一般的人这么说都可以理解了吧
-----------------------------------------下面分析最关键的表quest_templatege-----------------------------
我不想引用某某的文章,用英语能力来翻译这个表,我想我要是翻译出来了这个表也未必有人,有心思去做,所以我干脆直观的做了一个模版,这个模版可以说是最傻瓜式的任务制作方法,现在我把模版贴出来,大家一看就知道怎么做了,这个模版是个导入语句的模版,只要把相应的中午地方更改就可以变成自己的任务了
REPLACE INTO `quest_template` (`entry`, `ZoneOrSort`, `SkillOrClass`, `MinLevel`, `QuestLevel`, `Type`, `RequiredRaces`, `RequiredSkillValue`, `RepObjectiveFaction`, `RepObjectiveValue`, `RequiredMinRepFaction`, `RequiredMinRepValue`, `RequiredMaxRepFaction`, `RequiredMaxRepValue`, `SuggestedPlayers`, `LimitTime`, `QuestFlags`, `SpecialFlags`, `CharTitleId`, `PrevQuestId`, `NextQuestId`, `ExclusiveGroup`, `NextQuestInChain`, `SrcItemId`, `SrcItemCount`, `SrcSpell`, `Title`, `Details`, `Objectives`, `OfferRewardText`, `RequestItemsText`, `EndText`, `ObjectiveText1`, `ObjectiveText2`, `ObjectiveText3`, `ObjectiveText4`, `ReqItemId1`, `ReqItemId2`, `ReqItemId3`, `ReqItemId4`, `ReqItemCount1`, `ReqItemCount2`, `ReqItemCount3`, `ReqItemCount4`, `ReqSourceId1`, `ReqSourceId2`, `ReqSourceId3`, `ReqSourceId4`, `ReqSourceCount1`, `ReqSourceCount2`, `ReqSourceCount3`, `ReqSourceCount4`, `ReqSourceRef1`, `ReqSourceRef2`, `ReqSourceRef3`, `ReqSourceRef4`, `ReqCreatureOrGOId1`, `ReqCreatureOrGOId2`, `ReqCreatureOrGOId3`, `ReqCreatureOrGOId4`, `ReqCreatureOrGOCount1`, `ReqCreatureOrGOCount2`, `ReqCreatureOrGOCount3`, `ReqCreatureOrGOCount4`, `ReqSpellCast1`, `ReqSpellCast2`, `ReqSpellCast3`, `ReqSpellCast4`, `RewChoiceItemId1`, `RewChoiceItemId2`, `RewChoiceItemId3`, `RewChoiceItemId4`, `RewChoiceItemId5`, `RewChoiceItemId6`, `RewChoiceItemCount1`, `RewChoiceItemCount2`, `RewChoiceItemCount3`, `RewChoiceItemCount4`, `RewChoiceItemCount5`, `RewChoiceItemCount6`, `RewItemId1`, `RewItemId2`, `RewItemId3`, `RewItemId4`, `RewItemCount1`, `RewItemCount2`, `RewItemCount3`, `RewItemCount4`, `RewRepFaction1`, `RewRepFaction2`, `RewRepFaction3`, `RewRepFaction4`, `RewRepFaction5`, `RewRepValue1`, `RewRepValue2`, `RewRepValue3`, `RewRepValue4`, `RewRepValue5`, `RewOrReqMoney`, `RewMoneyMaxLevel`, `RewSpell`, `RewSpellCast`, `RewMailTemplateId`, `RewMailDelaySecs`, `PointMapId`, `PointX`, `PointY`, `PointOpt`, `DetailsEmote1`, `DetailsEmote2`, `DetailsEmote3`, `DetailsEmote4`, `IncompleteEmote`, `CompleteEmote`, `OfferRewardEmote1`, `OfferRewardEmote2`, `OfferRewardEmote3`, `OfferRewardEmote4`, `StartScript`, `CompleteScript`) VALUES (任务编号, -1, 0, 可以接受这个任务的等级, 任务的等级, 任务的属性, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 任务的类别, 0, 前一个任务ID, 后续任务ID, 0, 0, 0, 0, 0, \'任务标题\', \'任务描述\', \'任务情况 [建议组队人数2-3 治疗1名]\', \'完成前的叙述\', \'完成时的叙述\', \'\', \'\', \'\', \'\', \'\', 需要的物品, 需要的物品, 需要的物品, 需要的物品, 数量, 数量, 数量, 数量, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 需要杀的怪, 需要杀的怪, 需要杀的怪, 需要杀的怪, 数量, 数量, 数量, 数量, 0, 0, 0, 0, 选择奖励的物品, 选择奖励的物品, 选择奖励的物品, 选择奖励的物品, 选择奖励的物品, 选择奖励的物品, 数量, 数量, 数量, 数量, 数量, 数量, 奖励的物品, 奖励的物品, 奖励的物品, 奖励的物品, 数量, 数量, 数量, 数量, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 奖励的金钱, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
看了上面的模版,我想你已经知道该怎么做了,现在我给大家拿出来几个上面模版的需要添到的具体参数
任务的属性,这个指的是任务是属于精英还是团队还是PVP或者别的,这里大家要注意JY任务是只能5人组队的,团队的任务是可以多人的,所以设置时这不能大意,你不能让一个25人FB的任务搞成JY任务,那这样别人就不能开团做了,很不方便,或者可能完成不了,这的具体参数是
1 精英 21 传记 41 PVP 62 团队 82 世界事件 83 传说
任务的类别 这个设计的东西其实不多,给大家举个例子,可反复完成任务和一次性完成任务,还有计时任务就是靠这个来决定的,现在给出参数:
0 普通 1 反复完成任务 2 探险 4 交谈
8 杀怪 16 限时 32 重复 64 声望
另外奖励物品的意思就是直接奖励给玩家不需要玩家选择的,有几件给几件 最多4件
选择奖励物品是需要玩家选择的,N件当中只可以选一件 最多6件选择奖励
另外给出其他做任务时候需要的参数,以下为抄袭,贴子很多我也不知道哪转的了:
RequiredRaces 任务需要种族.
1 人类 2 兽人 4 矮人 8 暗夜精灵 16 亡灵 32 牛头人 64 侏儒 128 巨魔
例:如果任务人类.矮人.暗夜精灵和侏儒都可以接.这个值为1+4+8+64=77.
RequiredClass 任务需要职业.
1 战士 2 圣骑士 4 猎人 8 盗贼 16 牧师 64 萨满 128 法师 256 术士 1024 德鲁依
同种族一样.值系相加的.
RequiredSkill 任务需要技能.在SkillLine.dbc定义.
182 采集356 钓鱼171 炼金393 剥皮197 裁缝165 制皮
186 采矿202 工程164 锻造 129 急救 333 附魔 185 烹饪
QuestSort 任务类型.在QuestSort.dbc定义.
1 史诗 21 哀嚎洞穴
22 季节性 23 幽暗城 SkillOrClass技能或等级
24 草药学 25 修道院 ZoneOrSort区域或类别
41 奥达曼 61 术士
81 战士 82 萨满祭司
101 钓鱼 121 锻造
141 圣骑士 161 法师
162 盗贼 181 炼金术
182 制皮 201 工程学
221 藏宝图 241 沉没的神庙
261 猎人 262 牧师
263 德鲁伊 264 裁缝
284 特殊 304 烹饪
324 急救 344 传说
364 暗月马戏团 365 安其拉战争
366 新年 367 声望
368 天灾入侵 369 仲夏
ReqSourceId1-4 能获得ReqItem的物品,在item_template表的Entry.
ReqSourceRef1-4 能获得ReqItem的物品的数量.------------------------》接到任务BNPC会给你的物品
-----------------------------------------------------------以上是对怎么做任务的一个教学---------------------------------------
现在拿出自己做任务所用的东西
首先是模版
我称这个叫任务连接:
INSERT INTO `creature_involvedrelation` (`id`, `quest`) VALUES (80003, 400004); 结束任务NPC
INSERT INTO `creature_questrelation` (`id`, `quest`) VALUES (80003, 400004); 开始任务NPC
上面的数值自己改,大家可以把2条SQL语句记录到自己的记事本,做任务的时候套就是
以下我称是一次性任务模版
因为贴子长度有限大家复制我上面举例的任务制作用的SQL导句
一样保存为记事本
以下为任务NPC--------------》注意是任务的NPC不是销售员或者别的什么!
INSERT INTO creature_template
(`entry`, `modelid_A`, `modelid_A2`, `modelid_H`, `modelid_H2`, `name`, `subname`, `IconName`, `minlevel`, `maxlevel`, `minhealth`, `maxhealth`, `minmana`, `maxmana`, `armor`, `faction_A`, `faction_H`, `npcflag`, `speed`, `scale`, `rank`, `mindmg`, `maxdmg`, `dmgschool`, `attackpower`, `baseattacktime`, `rangeattacktime`, `flags`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `class`, `race`, `minrangedmg`, `maxrangedmg`, `rangedattackpower`, `type`, `flag1`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `RacialLeader`, `RegenHealth`, `equipment_id`, `mechanic_immune_mask`, `ScriptName`)
VALUES
(80003, 21020, 0, 21020, 0, \'游戏引领员\', \'财主\', \'\', 70, 70, 43560, 43560, 999, 999, 5000, 1080, 1080, 2, 1.5, 1, 3, 80000, 80000, 0, 7, 100, 100, 0, 0, 0, 0, 0, 0, 0, 1000, 2000, 100, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \'\', 0, 3, 0, 1, 763, 0, \'\');
80003是NPC编号 21020是NPC模型,2个21020都是,2个数值要一致 游戏引领员\'是NPC的名字 财主\'是NPC名字下面的称号!后面的大家不理解的去搜索下关于NPC表的知识,一样,把这个模版保存,然后更改导入可以变成自己的NPC!
还设计到一个表,现在也发出来,是关于掉落的,以下是模版
INSERT INTO `creature_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `groupid`, `mincountOrRef`, `maxcount`, `lootcondition`, `condition_value1`, `condition_value2`) VALUES (掉落ID, 物品IO, 几率, 0, 1, 1, 0, 0, 0);
creature_loot_template掉落表,上面3个中午字自己替换掉,掉落ID对应ITEM_template的LOOTID项 物品ID对应ITEM_template的ENTRY项目,几率自己设置,几率这说下,mangosd.conf里面要是你设置掉宝是4倍的话,这如果你写25倍掉率,那就是4*25=100倍,所以有时候你打一个BOSS他连内裤都暴给你就是这个原因,设置mangosd.conf不要太高!