02.兌換碼和獎(jiǎng)勵(lì)模板
【__兌換碼】的功能是,彈出輸入框,玩家輸入兌換碼,直接獲得指定的獎(jiǎng)勵(lì),然后此兌換碼失效。
此功能,主要用來,發(fā)放福利,吸引人氣。比如在直播間發(fā)放,在群里發(fā)放,等等...
此功能可以做到NPC對(duì)話框,物品使用對(duì)話框,物體交互對(duì)話框。這次先做在NPC上。
先執(zhí)行sql腳本,創(chuàng)建一個(gè)NPC模板:

INSERT INTO `acore_world`.`creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `mindmg`, `maxdmg`, `dmgschool`, `attackpower`, `DamageModifier`, `BaseAttackTime`, `RangeAttackTime`, `unit_class`, `unit_flags`, `unit_flags2`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `minrangedmg`, `maxrangedmg`, `rangedattackpower`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `spell5`, `spell6`, `spell7`, `spell8`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `HoverHeight`, `HealthModifier`, `ManaModifier`, `ArmorModifier`, `RacialLeader`, `movementId`, `RegenHealth`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `VerifiedBuild`) VALUES (99000, 0, 0, 0, 0, 0, 16135, 0, 0, 0, '功能測(cè)試', '', NULL, 0, 80, 80, 2, 35, 1, 1, 1.14286, 0.6, 3, 0, 0, 0, 0, 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, 3, 1, 1, 1, 1, 0, 0, 1, 0, 0, 'Func_CreatureScript', 1);

這個(gè)NPC有兩個(gè)要求:
1. ?必須是可交互的,{npcflag}字段包含1 。
2. {ScriptName}字段必須是 'Func_CreatureScript'
在游戲中,使用 .npc add 99000 就會(huì)生成一個(gè)如下的NPC

然后在【__主功能配置】給這個(gè)NPC添加一個(gè)對(duì)話菜單:

INSERT INTO `acore_world`.`__主功能配置` (`類型`, `生物物品或物體ID`, `菜單ID`, `上級(jí)菜單ID`, `陣營`, `功能選擇`, `需求模板ID`, `獎(jiǎng)勵(lì)模板ID`, `GM命令組`, `小圖標(biāo)ID`, `大圖標(biāo)`, `菜單文本`, `彈窗文本`, `聯(lián)盟傳送坐標(biāo)ID`, `部落傳送坐標(biāo)ID`) VALUES ('NPC', 99000, 4, 0, '中立', '兌換碼', 0, 0, NULL, 0, '', '兌換碼', NULL, 0, 0);

游戲中,執(zhí)行 ? .rl all 重載所有配置,然后再和NPC對(duì)話,發(fā)現(xiàn)他出現(xiàn)了一個(gè)“兌換碼”選項(xiàng),

點(diǎn)擊后,彈出一個(gè)輸入框,隨便輸入,會(huì)提示兌換碼錯(cuò)誤,

所有可用的兌換碼,在數(shù)據(jù)表【__兌換碼】里,這個(gè)表的字段是:【備注】【ID】【兌換碼】【獎(jiǎng)勵(lì)模板ID】。
其他都很好理解,只有【獎(jiǎng)勵(lì)模板ID】需要重點(diǎn)說明,這里只有一個(gè)ID,那么獎(jiǎng)勵(lì)內(nèi)容在哪里定義呢?
首先,魔獸世界的內(nèi)容是非常豐富的,所以可以獎(jiǎng)勵(lì)給玩家的東西很多,比如,金幣,物品,經(jīng)驗(yàn),等級(jí),技能,等等...
為了統(tǒng)一管理和調(diào)用,小環(huán)端,專門做了一個(gè)數(shù)據(jù)表【_模板_獎(jiǎng)勵(lì)】,里面的字段,涵蓋了常用的可以獎(jiǎng)勵(lì)的內(nèi)容,最后還有【GM命令組】,基本可以滿足99%的獎(jiǎng)勵(lì)需求了~
你可以在這里定義要獎(jiǎng)勵(lì)的內(nèi)容, ?然后把獎(jiǎng)勵(lì)id 填到兌換碼表里的獎(jiǎng)勵(lì)模板ID里,當(dāng)玩家輸入這個(gè)兌換碼的時(shí)候,就可以獲得對(duì)應(yīng)獎(jiǎng)勵(lì)模板里的物品。
整理下結(jié)構(gòu):
