امروز آموزش هم کاربردی و هم fun برای شما آماده کردیم، البته بستگی به خودتون داره که از این آموزش برای مثلا یک باس استفاده کنید یا مثل اموزش من کاربرد فان داشته باشه.
ساخت Waypoint یا امکان راه رفتن یک NPC :
برای این کار میبایست شما روی NPC مورد نظر npc info کرده و اولین خط یعنی کد رو به رو به Guid را یادداشت کنید .
به محلی که NPC میخواهید به آنجا برود کامند : wp add guid. را بزنید و به جای Guid همان کد یادداشتی را وارد کنید .
در صورتی که میخواهید به صورت تکه تکه حرکت کند همین کامند را در محل های مورد نظر وارد کنید .
سپس بر روی NPC مورد نظر کامند wp load guid. را بزنید و مثل بالا به جای guid کد را وارد کنید و سرور را دوباره راه اندازی کنید .
البته شما میتونید در تیبل waypoint_data به صورت دستی مقادیری رو پر کنید.
نکته : برای اینکه بخواید npc در بعضی جاها که waypoint ادد دادید تایم و زمان براش تعیین کنید در فیلد delay میتونید این کار رو انجام بدید مثل تصویر زیر :
صحبت کردن NPC :
برای این مورد من دو روش رو پیشنهاد میدم :
- با برنامه و به صورت خیلی راحت انجام بدید
- به صورت دستی خودتون مقادیری رو وارد دیتابیس کنید
روش اول که بسیار راحتره ، شما از برنامه Keira برای نسخه azerothcore استفاده کنید و این برنامه تا حدودی میتونه نسخه TrinityCore هم ساپورت کنه ولی در زیر برنامه Wow Database Editor رو برای شما میزارم، که با این برنامه شما به راحتی هر دو نسخه رو میتونید مقادیرش رو ادیت کنید.
روش دوم به صورت دستی هم اموزش زیر رو ببینید:
برای صحبت کردن NPC از طریق دیتابیس ابتدا به تیبل Creature_template رفته سپس NPC مورد نظر رو پیدا کنید .
در مرحله بعدی ما در فیلد AIName کامه SmartAI رو تایپ میکنیم ، مثل تصویر زیر :
به تیبل creature_text رفته ، یک لاین جدید ایجاد کرده ، سپس طبق توضیحات زیر فیلد ها رو پر کنید :
entry یا CreatureID را همان Entry اون NPC وارد کنید.
groupid : اگر چند متن باشد ، به ترتیب 1 و 2 و 3 و غیره رو وارد نمایید .
text : متن مورد نظر رو وارد کنید .
Type : این فیلد را طبق تصاویر زید هر کدام که نیاز داشتید عددش رو وارد کنید .
12 | Say | ||
14 | Yell | ||
16 | Emote | ||
41 | Boss Emote | ||
15 | Whisper | ||
42 | Boss Whisper |
probability : در این فیلد 100 را وارد کنید .
emote : در صورتی که نیاز دارید هنگام صحبت کردن یک Emote داشته باشد ، آی دی یک Emote را وارد کنید
TextRange : یعنی اینکه این متن در چه محدوده ای نمایش داده شود؟ یکی از اعداد زیر وارد شود.
0 | پیشفرض |
1 | Area |
2 | Zone |
3 | Map |
4 | World |
نکته : من با برنامه Keira که تصاویرش هم در زیر میبینید در فیلد SmartAI تنظیمات رو به صورت خیلی راحت انجام دادم اما اگر به هر دلیلی خواستید که به صورت دستی مقادیر رو وارد دیتابیس کنید هم در زیر توضیحات داده شده :
مرحله اخر شما میبایسد به تیبل Smart_script رفته ، یک لاین جدید ایجاد نمایید :
فیلد entryorguid رو همان Entry اون NPC وارد کنید .
event_type : با توجه به توضیحات زیر باید یک عدد وارد شود :
عملکرد | شناسه | event_param1 |
event_param2 |
event_param3 |
event_param4 |
In combat. |
0
|
InitialMin | InitialMax | RepeatMin | RepeatMax |
Out of combat. |
1
|
InitialMin | InitialMax | RepeatMin | RepeatMax |
Health Percentage |
2
|
HPMin% | HPMax% | RepeatMin | RepeatMax |
Mana Percentage |
3
|
ManaMin% | ManaMax% | RepeatMin | RepeatMax |
On Creature Aggro |
4
|
||||
On Creature Kill |
5
|
CooldownMin | CooldownMax | Player only (0/1) | Creature entry (if param3 is 0) |
On Creature Death |
6
|
||||
On Creature Evade Attack |
7
|
||||
On Creature/Gameobject Spell Hit |
8
|
SpellID | School | CooldownMin | CooldownMax |
On Target In Range |
9
|
MinDist | MaxDist | RepeatMin | RepeatMax |
On Target In Distance Out of Combat |
10
|
NoHostile | MaxRange | CooldownMin | CooldownMax |
On Creature/Gameobject Respawn |
11
|
type | MapId | ZoneId | |
On Target Health Percentage |
12
|
HPMin% | HPMax% | RepeatMin | RepeatMax |
On Target Casting Spell |
13
|
RepeatMin | RepeatMax | Spell id (0 any) | |
On Friendly Health Deficit |
14
|
HPDeficit | Radius | RepeatMin | RepeatMax |
On Friendly Lost Buff |
16
|
SpellId | Radius | RepeatMin | RepeatMax |
On Creature/Gameobject Summoned Unit |
17
|
CretureId (0 all) | CooldownMin | CooldownMax | |
On Target Mana Percentage |
18
|
ManaMin% | ManaMax% | RepeatMin | RepeatMax |
On Target Accepted Quest |
19
|
QuestID (0 any) | |||
On Target Rewarded Quest |
20
|
QuestID (0 any) | |||
On Creature Reached Home |
21
|
||||
On Receive Emote. |
22
|
EmoteId | CooldownMin | CooldownMax | condition |
On Creature Has Aura |
23
|
SpellID | Stacks | RepeatMin | RepeatMax |
On Target Buffed With Spell |
24
|
SpellID | Stacks | RepeatMin | RepeatMax |
After Combat, On Respawn or Spawn |
25
|
||||
On Target In Distance In Combat |
26
|
NoHostile | MaxRange | CooldownMin | CooldownMax |
On Creature Charmed |
29
|
0 (on charm apply) / 1 (on charm remove) | |||
On Target Charmed |
30
|
||||
On Target Spell Hit |
31
|
SpellId | School | RepeatMin | RepeatMax |
On Creature Damaged |
32
|
MinDmg | MaxDmg | RepeatMin | RepeatMax |
On Target Damaged |
33
|
MinDmg | MaxDmg | RepeatMin | RepeatMax |
MovementInform | 34
|
||||
On Summoned Unit Despawned |
35
|
Entry | CooldownMin | CooldownMax | |
On Creature Corpse Removed |
36
|
||||
On Creature/Gameobject Data Set, Can be used with SMART_ACTION_SET_DATA |
38
|
Field | Value | CooldownMin | CooldownMax |
On Creature Waypoint ID Started |
39
|
PointId (0 any) | pathId (0 any) | ||
On Creature Waypoint ID Reached |
40
|
PointId (0 any) | pathId (0 any) | ||
On TEXT_OVER Event Triggered After SMART_ACTION_TALK |
52
|
GroupId (from creature_text) | Creature.Id (0 any) | ||
On Creature Received Healing |
53
|
MinHeal | MaxHeal | CooldownMin | CooldownMax |
On Creature Just spawned |
54
|
||||
On Creature Paused at Waypoint ID |
55
|
PointId (0 any) | pathID (0 any) | ||
On Creature Resumed after Waypoint ID |
56
|
PointId (0 any) | pathID (0 any) | ||
On Creature Stopped On Waypoint ID |
57
|
PointId (0 any) | pathID (0 any) | ||
On Creature Waypoint Path Ended |
58
|
PointId (0 any) | pathID (0 any) | ||
Used to link together multiple events as a chain of events. |
61
|
||||
On gossip clicked (gossip_menu_option). |
62
|
menu_id | id | ||
On Right-Click Creature/Gameobject that have gossip enabled. |
64
|
||||
On event phase mask set |
66
|
event phase mask | |||
On Creature is behind target. |
67
|
CooldownMin | CooldownMax | ||
On game_event started. |
68
|
game_event.eventEntry | |||
On game_event ended. |
69
|
game_event.eventEntry | |||
On creature guid OR any instance of creature entry is within distance. | 75 | database guid | database entry | distance | repeat interval (ms) |
On gameobject guid OR any instance of gameobject entry is within distance. | 76 | database guid | database entry | distance | repeat interval (ms) |
If the value of specified counterID is equal to a specified value | 77 | counterID | value | cooldownMin | cooldownMax |
action_type رو 1 قرار بدهید .
در فیلد action_param1 ، شما باید عدد رو از تیبل creature_text موجود در دیتابیس World بهش بدید. این شماره در واقع فیلد groupid هست .
target_type رو هم عدد 1 وارد کنید.