Teleport NPC készítése [DB-ben, nem sriptel]

Indította Shimion, 2013 január 24, 01:30:17 DÉLUTÁN

Előző téma - Következő téma

Shimion

Sziasztok.
Nagyon sokan kérdezték, hogy hogyan kell teleport npc-t készíteni anélkül, hogy scriptelned kellene. És nagyon sokan írtak is, hasznos tutorialokat ezzel kapcsolatban. Questes, vagy gossip-os megoldással is, vagy épp scriptel. De a gossipos változatban pl: az új adatbázisokból elvileg kivették valamiért gossip_script táblát.
Bár lehet, hogy csak nekem újdonság, de rájöttem egy másik megoldásra is, Gossip és SmartAI-val együttesen megcsinálni egy teleport npc-t.
Gondoltam leírom ide, hátha valakinek segít bármiben is. Mellékesen megjegyzem, ha rossz helyre írom, vagy butaságot írtam, akkor elnézést, és nyugodtan töröljétek a topikom.
Na de akkor leírom, hogyan is kell:

===============================================================================
Először is, csináljunk egy npc-t:

Entry:                       31860  (egy szám, ami még nincs)
ModellID:                  28216  (DisplayID, hogy hogy nézzen ki az NPC-nk.Én most egy pingvin kinézetet adtam neki)
Name:                      Pingu  (Az NPC-nk neve)
Subname:                Teleporter (Guildnevet szoktak ábrázolni vele)
Gossip_menu_ID:    (Ide majd a Gossip_menu_option-ban létrehozott gossip-ünk ID-jét írjuk majd be, miután megsináltuk.
Minlevel:                   80 maxlevel  80 (hanyas szítű legyen az NPC-nk)
Exp:                          2
Faction_A és Faction H  35 (Hogy mind2 frakcióban friendly legyen
NPCflag:                   1 (Ha eg NPC-hez gossipot akarunk társítani, akkor ide 1-est kell írni)
Scale:                       3  (NPC mérete a pingu mérete kicsi ezért én 3-ast adtam, de lehet 1-től 10-íg bármennyi)
Unit_Flags:               768
Dinamicflags:            8
AIName:                   SmartAI
Health_mod:            5000 (adjunk neki kis HP-t)

Kész az NPC-nk, de még ne zárjuk be (könnyebb megtalálni)
===============================================================================

Most csináljunk hozzá egy Gossip-ot:

Nyissuk meg a gossip_menu_options táblát

Menu_ID:                        10172 (egy szám ami még nincs)
Option_icon:                   0 (a menü ikonja a 0 kis fehér chat buborék de ha mást szeretnétek http://collab.kpsn.org/display/tc/Gossip+menu+option+tc2)
Option_text:                   I want to teleport to Orgrimmar (A menü szövege)
Option_ID:                     1 
NPC_option_NPCflag:    1

A gossip-nk is kész van, de még ez se zárjuk be.
Most a létrehozott gossip-nk IDjét tehát a 10172-őt írjuk be az NPC-nk gosip_menu_ID sorjába.

===============================================================================
Most cináljuk meg a smartAI-t.

Nyisd meg a smart_scripts táblát:

Entryorguid:           31860 (Az NPC-nk entryjét kell ide írni)
source_type:           0 (Opjecttípus: Creature, gameobject, vagy spell típu szám, a 0 a creature. 1 a gameobject )
Event_type:             62 (hogy honnan induljon el a mart event a 62-es a SMART_EVENT_GOSSIP_SELECT)
Event chance:         100  (hogy mennyi %-ban indítsa el az eventet, 100 ha ugye azt szeretnénk, hogy ne csak néha néha portoljon el)
Event_param1:       10172  (Az előbb megcsinált Gossipunk ID-jét kell beírni ide)
Action_type:            85   (hogy mit csináljon az event a 85-ös az pl elkasztok egy spellt)
Action_param1:       3567 (a spell amit elkasztoljon jelen esetben én a mages og teleportos spellt adtam meg)
cast_flag:                2 (hogy ne kerüljön se mannába a spell, és instant is legyen)
target_type:           1 (a target típusa 1 az annyit jelent, hogy saját magára kasztolja el)
Comment:                Pingu - On gossip option select - Player Cast Teleport to Orgrimmar on self

===============================================================================

Megcsináltuk ezt is, most mentsük el ezeket. És az NPC-nk ID-jét jegyezzük meg, hogy legyen mit előidézni.
Remélem nem hagytam ki semmit, ha esetleg még segít:

http://collab.kpsn.org/display/tc/Creature+template+tc2
http://collab.kpsn.org/display/tc/Gossip+menu+option+tc2
http://collab.kpsn.org/display/tc/Smart+scripts+tc2

Ebből a 3 weboldalból kibogarászhatjátok, hogy mi micsoda.
Bár nem túl professzionális leírás, de remélem tudtam vele bárkinek is segíteni vele.






processzor

És itt hol adod , meg a koordinátát, hogy hova portoljon?

Aimedshot

Leírta hogy  1 mage spellt használt fel ami elteleportál orgrimmarba

Shimion

Snart AI
Action_type:            85   (hogy mit csináljon az event a 85-ös az pl elkasztol egy spellt)
Action_param1:       3567 (a spell amit elkasztoljon jelen esetben én a mages og teleportos spellt adtam meg)

Minden fővároshoz csináltak egy teleportos pellt, emellett nagyon sok olyan spell van, ami máshová vezet, és nincs használatban, ilyen pl karazan, darkshore, ha jól tudom. De enélkül is van sok. A world adatbázison belül, a spell_target_position táblában az összes ilyen spell koordinátája bennevan.
ID a spell ID-je,
Target map, position x, y, z, o pedíg a koordináták. Ha pl: a 3567-es spell koordinátáját átírod ebben az táblában, akkor már nem OG-ba fog, hanem ahová beállítottad. Persze nem épp OG-t kellene átírni.

De még olyat is lehet csinálni, hogy a smart AI-ban az
AktionTypbeban 85 helyett 62-őt írtok. Ez el teleportál egy beállított targetet egy beállított helyre.
Target param ide a map ID-je kell,
target type 21 (a legközelebbi játékos)
target param (yard, tehát, hogy mennyi yardon belüli játékosokra használja fel az action-t.
Target x, y, z, o pedíg a koordináta
comment pedíg bármilyen szöveg.
Ebben nekem annyi nem tetszik, hogy ha beírjuk a target typebe a 21-et target param 10 vagy 5 akkor aki 5-10 yardon belül van, akkor azt mind elportolja.

Nekem a spelles megoldás jobban tetszik, de izlések és ficamok :)






Tudvari

#4
A target type a második megoldásnál is lehet 1(self) ugye?
És azt,hogy oldjam meg,hogy csak akkor jelenjen meg a gossip,ha megcsinál egy küldetést a játékos?

Sikerült Target Type = 0 és akkor az invoker a target,most jöhet a condition
EDIT: Szerintem megtaláltam a conditions táblában a megoldást.

Powered by EzPortal