Informatikai Barkács Fórum

WORLD OF WARCRAFT SZERVER => Általános => A témát indította: zack01 Dátum 2011 július 05, 02:30:34 DÉLUTÁN

Cím: Teleporter NPC [gossip]tirinity
Írta: zack01 Dátum 2011 július 05, 02:30:34 DÉLUTÁN
Üdv mindenkinek. Nézegettem a témákat, de olyat nem láttam hogy leírná valaki hogyan készül 1 teleproter npc Tirinity core emura. Ezért úgy gondoltam, hasznos lehet ha ezt megosztom azokkal akik nem tudnák  :)

1. lépés: gyártsunk le 1 npc-t, aki a mi teleproterünk lesz.
sql:
INSERT INTO creature_template (entry,modelid1,name,subname,IconName,gossip_menu_id,minlevel,maxlevel,Health_mod,Mana_mod,Armor_mod,faction_A,faction_H,npcflag,speed_walk,speed_run,scale,rank,dmg_multiplier,unit_class,unit_flags,type,type_flags,InhabitType,RegenHealth,flags_extra)
VALUES (999999,24124,'Vak teleporter','Teleporter','Directions',999999(ezt a számot jegyezzük meg, mer később kelleni fog még),71,71,1.56,1.56,1.56,35,35,3,1,1.14286,1,1,1,1,2,7,138936390,3,1,2);


2. lépés: létre kell hoznunk 1 gossip menüt. Ezt a gossip_menu_option táblában tehetjük meg
sql:
INSERT INTO gossip_menu_option (menu_id, id, option_icon, option_text, option_id, npc_option_npcflag, action_menu_id, action_poi_id, action_script_id, box_coded, box_money, box_text)
VALUES
(999999(ezt a számot adtuk meg az npc-nek a gossip_menü_id sorhoz) , 1, 2(itt azt adjuk meg hogy milyen kis ikon jelenjen meg a gossip elött.ezeket a végén feltüntetem hogy melyik mit takar), 'OG(ide irjuk be a menü nevét[ezt hozza ki mikor majd rá akarunk kattintani])', 1, 1,  9999999(itt is ezt a bizonyos számot kell megadni amit az npc nél használtunk), 0, 51234(ezt a számot is jegyezzük meg mer ez kapcsolja össze a hozzá tartozó gossip_scripts- táblával, 0, 0, NULL),


3. lépés: be kell állítanunk hogy mit csináljon a gossip.(sok fajta dologra lehet használni a gossipot, ezért így fogalmaztam)
sql:
INSERT INTO gossip_scripts (id, delay, command, datalong, datalong2, dataint, x, y, z, o)
VALUES (51234(észre vehettétek hogy ezt adtuk meg mikor létre hoztuk a gossip menüt), 0, 6(itt határozzuk meg hogy mi legyen a gossip parancs[a topik alján az összeset leírom amit ismerek]), 0(a teleporter esetében ide a MAP ID-t kell beírnod), 0, 0, x koordináta, y koordináta, z koordináta, orientation),


Kész vagyunk. össze foglaltam 1 sql be 1 og teleportert:
INSERT INTO creature_template (entry,modelid1,name,subname,IconName,gossip_menu_id,minlevel,maxlevel,Health_mod,Mana_mod,Armor_mod,faction_A,faction_H,npcflag,speed_walk,speed_run,scale,rank,dmg_multiplier,unit_class,unit_flags,type,type_flags,InhabitType,RegenHealth,flags_extra)
VALUES (888112,12341,'Vak teleporter','eXtreMe WoW','Directions',666666,71,71,1.56,1.56,1.56,35,35,3,1,1.14286,1,1,1,1,2,7,138936390,3,1,2);

INSERT INTO gossip_menu_option (menu_id, id, option_icon, option_text, option_id, npc_option_npcflag, action_menu_id, action_poi_id, action_script_id, box_coded, box_money, box_text)
VALUES
(666666, 1, 2, 'ogba', 1, 1, 666666, 0, 777777, 0, 0, NULL),

INSERT INTO gossip_scripts (id, delay, command, datalong, datalong2, dataint, x, y, z, o)
VALUES
(777777, 0, 6, 1, 0, 0, 1629.36, -4373.39, 31.2564, 3.54839),


Ahogy ígértem, itt vannak az ikon jelek:
IdézGOSSIP_ICON_CHAT                = 0,      //Fehér buborék
 GOSSIP_ICON_VENDOR              = 1,      //Barna tasi
 GOSSIP_ICON_TAXI                = 2,      //1 Szárny(én ezt szeretem használni)
 GOSSIP_ICON_TRAINER             = 3,      //könyv
 GOSSIP_ICON_INTERACT_1          = 4,      //interaction wheel
 GOSSIP_ICON_INTERACT_2          = 5,      //interaction wheel
 GOSSIP_ICON_MONEY_BAG           = 6,      //brown bag with yellow dot
 GOSSIP_ICON_TALK                = 7,      //white chat bubble with black dots
 GOSSIP_ICON_TABARD              = 8,      //tabard
 GOSSIP_ICON_BATTLE              = 9,      //two swords
 GOSSIP_ICON_DOT                 = 10      //yellow dot

És a gossip commandok:
Idéz0    TALK                             Az NPC a script_texts-ből kiolvas 1 szöveget, amelyet say/yell/emote útján elmond.
  1    EMOTE                            Az NPC egy "emote"-t fog eljátszani.
  2    FIELD_SET                        
  3    MOVE_TO                          Áthelyezi az NPC-t
  4    FLAG_SET                        
  5    FLAG_REMOVE                      
  6    TELEPORT_TO                      Elteleportálja a játékost
  7    QUEST_EXPLORED                   Satisfies the explore requirement for a quest.
  9    RESPAWN_GAMEOBJECT               Spawns a despawned gameobject.
  10   TEMP_SUMMON_CREATURE             Ideiglenesen odasummol egy NPC-t.
  11   OPEN_DOOR                        Kinyit egy ajtót.
  12   CLOSE_DOOR                       Bezár egy ajtót.
  13   ACTIVATE_OBJECT                  Aktivál egy objectet.
  14   REMOVE_AURA                      Levesz 1 spellt/aurát a targetról.
  15   CAST_SPELL                       Elsüt 1 spellt.
  16   PLAY_SOUND                       Lejátszik egy hangot.
  20   LOAD_PATH                        
  22   KILL                             Megöl mindent
  30   SCRIPT_COMMAND_ORIENTATION      
  31   SCRIPT_COMMAND_EQUIP            
  32   SCRIPT_COMMAND_MODEL    

Remélem tudtam segíteni valakinek ezzel a kis tutoriallal!:)
Cím: Re:Teleporter NPC [gossip]tirinity
Írta: Cleaver93 Dátum 2011 július 05, 04:55:33 DÉLUTÁN
Hmm... Nem rossz, megy a +1
Cím: Re:Teleporter NPC [gossip]tirinity
Írta: zack01 Dátum 2011 július 06, 11:44:04 DÉLELŐTT
köszönöm :)

úgyis rám fér a + :D
Cím: Re:Teleporter NPC [gossip]tirinity
Írta: Cleaver93 Dátum 2011 július 06, 12:09:21 DÉLUTÁN
gossip commandal meglehet csinálni több dolgot is mint ami ezen a listán van?  Vagy ez a Trinity wikieől van?
És még1 kérdés, hogy tudom megcsinálni hogy egy kattintással több mindent csinál?
Cím: Re:Teleporter NPC [gossip]tirinity
Írta: zack01 Dátum 2011 július 06, 12:32:55 DÉLUTÁN
erre még nem gondoltam, de valószínűleg úgy, hogy a gossip_Script be 2 sort szúrsz be ami a gossip menüdre mutat. lehet hogy nem fogja engedni, ha nem engedi akkor script kell.
Cím: Re:Teleporter NPC [gossip]tirinity
Írta: kagebunshin Dátum 2011 július 07, 12:14:22 DÉLUTÁN

Lehet több sort beszúrni úgy ahogy zack01 írta.

Ha pedig több dolgot is szeretnél vele csináltatni, akkor azt külön meg kell írni, de az már core módosítás.
Cím: Re:Teleporter NPC [gossip]tirinity
Írta: akos123 Dátum 2012 február 13, 01:40:38 DÉLUTÁN
Van egy kis gondom nekem csak enyit ir

INSERT INTO  `world`.`gossip_menu_option` (

`menu_id` ,
`id` ,
`option_icon` ,
`option_text` ,
`option_id` ,
`npc_option_npcflag` ,
`action_menu_id` ,
`action_poi_id` ,
`box_coded` ,
`box_money` ,
`box_text` 

Hiányzik a action_script_id, ijenkor mi a tehndő?
Cím: Re:Teleporter NPC [gossip]tirinity
Írta: akos123 Dátum 2012 február 13, 02:04:13 DÉLUTÁN
trinity core rev +0100, Erre a reve kellene teleport npc!!
csak az alapok kellenek nekem hogy mi módon csináljam meg mert az uj revek sokban különböznek a régitől és a Bluerák scriptje már nem jó!!
Előrre is köszönöm!
Cím: Re:Teleporter NPC [gossip]tirinity
Írta: zack01 Dátum 2012 február 14, 01:32:28 DÉLUTÁN
Az új adatbázisbók kivették a gossip_script táblát... nem tudom miért, ez engem is padlóra küldött pedig :/
Cím: Re:Teleporter NPC [gossip]tirinity
Írta: Shimion Dátum 2012 június 03, 11:32:37 DÉLUTÁN
Idézetet írta: akos123 Dátum 2012 február 13, 01:40:38 DÉLUTÁN
Van egy kis gondom nekem csak enyit ir

INSERT INTO  `world`.`gossip_menu_option` (

`menu_id` ,
`id` ,
`option_icon` ,
`option_text` ,
`option_id` ,
`npc_option_npcflag` ,
`action_menu_id` ,
`action_poi_id` ,
`box_coded` ,
`box_money` ,
`box_text` 

Hiányzik a action_script_id, ijenkor mi a tehndő?


Üdv!

Ugyanez van nálam is. Viszont a character adatbázisban ott van a gossip_options is, úgy, ahogy a leírásban is szerepel, meg a gossip script is, de oda hiába szúrok be bármit is,  a játékban nem jelenik meg. Megoldás?
Cím: Re:Teleporter NPC [gossip]tirinity
Írta: EroniX Dátum 2012 június 08, 03:18:57 DÉLUTÁN
[Törölve]
Cím: Re:Teleporter NPC [gossip]tirinity
Írta: zack01 Dátum 2012 július 02, 06:40:01 DÉLUTÁN
ez a gossip-os megoldás szerintem már felejtős, nézetek utána más módszereknek. ez a módszer amúgy se lenne 100%-os , mivel alliance és horde helyeket nem tudod elkülöníteni. A script a legjobb megoldás, de questel is gyönyörűen meg lehet oldani, az 1 kicsit macerásabb a playernek.