[GameObject] Teleporter erstellen?

Hallo,

leider habe ich über die Suchfunktion nichts passendes gefunden. Ich möchte einen “Teleporter” erstellen der beim betreten der “Plattform” einen zu bestimmten Welt-Koordinaten teleportiert. Wie stelle ich das an?

Ich danke schonmal für eure Hilfe.

MfG

PhaseV

Ich würde da einen Trigger NPC hinstellen, der ein Script bekommt das Spieler immer dann, wenn sie in bestimmter Nähe zu dem Trigger sind automatisch nach XY geportet werden.

Also einfach einen NPC als Worldtrigger in der Datenbank erstellen und dem ein Script verpassen. In dem Script sollte in kurzen Intervallen auf Spieler geprüft werden, die innerhalb eines kleinen Radius zu ihm stehen. Da könnte man auch verschiedene Voraussetzungen einfügen wie bestimmte Fraktion, Level, Ruf oder dergleichen. Erfüllt der Spieler diese Voraussetzungen wird er dann entweder sofort geportet oder erhält eine Meldung zum bestätigen des Teleports. Über ein CPP Script hat man da ja unzählige Möglichkeiten.

Das hört sich interessant an, leider wüsste ich nicht wie ich das umsetzen kann. Gibt es dafür ekn leicht verständliches Tutorial in Deutsch? Ich habe nicht so die Erfahrung mit Scripting bzw. C++.

Eine WoW Core customisieren geht ohne scripten und/oder C++ schlecht.

Allerdings kann man C++ Scripte hier auch ohne viel Erfahrung in C++ machen. Es sind wirklich mehr Scripte als richtiger Programmcode.

Und dann gibt’s noch die Möglichkeit Scripte via DB zu machen. Aber da bin ich noch kein so echter Fan von geworden.

Ich würde es auch so wie Micha machen. Die meisten Teleporter Scripte, die ich kenne, sind Gossip Scripts und das ist nicht das was du suchst.

Falls du ingame so einen Teleport entdeckst, kannst du schauen, wie der aufgebaut ist. Mit .gm on kannst du auch die Trigger NPCs sehen.

Ich habe jetzt eine Anleitung für einen Tele-NPC gefunden und Schritt für Schritt durchgeführt, leider öffnet sich beim klick kein Menu.

[creature_template]:

INSERT INTO creature_template VALUES (‘600000’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’, ‘28006’, ‘0’, ‘0’, ‘0’, ‘Merlin’, ‘Teleport Service’, ‘Directions’, ‘60000’, ‘80’, ‘80’, ‘0’, ‘35’, ‘1’, ‘1’, ‘1.14286’, ‘1’, ‘1’, ‘0’, ‘0’, ‘0’, ‘1’, ‘1’, ‘1’, ‘2’, ‘2048’, ‘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’, ‘1’, ‘1’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’, ‘1’, ‘0’, ‘2’, ‘SmartAI’, ‘0’);

[gossip_menu]:

INSERT INTO gossip_menu VALUES (‘60000’, ‘60000’);

[gossip_menu_option]:

INSERT INTO gossip_menu_option VALUES (‘60000’, ‘1’, ‘3’, ‘Hauptstädte [Allianz]’, ‘0’, ‘1’, ‘1’, ‘60001’, ‘0’, ‘0’, ‘0’, null, ‘0’);
INSERT INTO gossip_menu_option VALUES (‘60001’, ‘1’, ‘2’, ‘Sturmwind’, ‘0’, ‘1’, ‘1’, ‘0’, ‘0’, ‘0’, ‘0’, null, ‘0’);
[smart_scripts]:

INSERT INTO smart_scripts VALUES (‘60000’, ‘0’, ‘2’, ‘0’, ‘62’, ‘0’, ‘100’, ‘0’, ‘60001’, ‘1’, ‘0’, ‘0’, ‘62’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’, ‘8’, ‘0’, ‘0’, ‘0’, ‘-8839.04’, ‘614.444’, ‘92.9018’, ‘0.806958’, ‘Teleport - SW’);
Was habe ich vergessen bzw. wo ist mein Fehler?

Die Anleitung ist wohl veraltet und/oder falsch. Ich hab dir mal einen einen meiner Teleport NPC exportiert.

[Edit: Ich hab noch herausgefunden, warum dein Beispiel nicht geht. Man muss immer mind. 2 Optionen im Gossip Fenster haben. Also z.B. noch Hauptstäde [Horde]. Wenn man wirklich nur 1 Option haben will, muss man trotzdem noch eine 2. machen, z.B. ‘Ich will nichts, danke’ und mit dieser das Fenster schliessen.

Ausserdem ordnest du dem gossip_menu 60000 den npc_text 60000 zu. Der fehlt aber im Beispiel völlig.

Das SmartScript hab ich nicht getestet, aber die ID ist schon falsch, die muss 600000 und nicht 60000 heissen.

Solche Fehler findest du in deinem Serverlog.]

/* --------------------------------------------------------
Made by LoE SQL Exporter for LoE Trinity DB
Version 0.99
Export generated: 14. Sep, 2014 18:06:54
Server: tdev

mySQL queries for NPC 202090
-------------------------------------------------------- */

SET NAMES utf8;

-- ----------------------------------------------------------------------------------------------------
-- Table: creature_template
-- ----------------------------------------------------------------------------------------------------
INSERT INTO `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`, `dmgschool`, `BaseAttackTime`, `RangeAttackTime`, `BaseVariance`, `RangeVariance`, `unit_class`, `unit_flags`, `unit_flags2`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `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`, `DamageModifier`, `ExperienceModifier`, `RacialLeader`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `movementId`, `RegenHealth`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `VerifiedBuild`)
VALUES
(202090, 0, 0, 0, 0, 0, 7993, 0, 0, 0, 'Basil Stortebrecher', 'Reisebegleiter', '', 60179, 50, 50, 0, 120, 1, 1, 1.14286, 1, 0, 0, 2000, 0, 1, 1, 1, 0, 0, 8, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'SmartAI', 0, 3, 1, 1.25, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, '', 12340);

-- ----------------------------------------------------------------------------------------------------
-- Table: gossip_menu
-- ----------------------------------------------------------------------------------------------------
INSERT INTO `gossip_menu`
(`entry`, `text_id`)
VALUES
(60179, 300184);


-- ----------------------------------------------------------------------------------------------------
-- Table: gossip_menu_option
-- ----------------------------------------------------------------------------------------------------
INSERT INTO `gossip_menu_option`
(`menu_id`, `id`, `option_icon`, `option_text`, `OptionBroadcastTextID`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`, `BoxBroadcastTextID`)
VALUES
(60179, 0, 2, 'In den Hafen von Sturmwind', 0, 1, 1, 0, 0, 0, 5000, 'Möchtet Ihr diese Reise kaufen ?', 0),
(60179, 1, 2, 'Zum Dampfdruckpier in Tanaris', 0, 1, 1, 0, 0, 0, 10000, 'Möchtet Ihr diese Reise kaufen ?', 0);

-- ***************************************
-- Associated NPC Texts
-- ***************************************
-- ----------------------------------------------------------------------------------------------------
-- Table: npc_text
-- ----------------------------------------------------------------------------------------------------
INSERT INTO `npc_text`
(`ID`, `text0_0`, `text0_1`, `BroadcastTextID0`, `lang0`, `prob0`, `em0_0`, `em0_1`, `em0_2`, `em0_3`, `em0_4`, `em0_5`, `text1_0`, `text1_1`, `BroadcastTextID1`, `lang1`, `prob1`, `em1_0`, `em1_1`, `em1_2`, `em1_3`, `em1_4`, `em1_5`, `text2_0`, `text2_1`, `BroadcastTextID2`, `lang2`, `prob2`, `em2_0`, `em2_1`, `em2_2`, `em2_3`, `em2_4`, `em2_5`, `text3_0`, `text3_1`, `BroadcastTextID3`, `lang3`, `prob3`, `em3_0`, `em3_1`, `em3_2`, `em3_3`, `em3_4`, `em3_5`, `text4_0`, `text4_1`, `BroadcastTextID4`, `lang4`, `prob4`, `em4_0`, `em4_1`, `em4_2`, `em4_3`, `em4_4`, `em4_5`, `text5_0`, `text5_1`, `BroadcastTextID5`, `lang5`, `prob5`, `em5_0`, `em5_1`, `em5_2`, `em5_3`, `em5_4`, `em5_5`, `text6_0`, `text6_1`, `BroadcastTextID6`, `lang6`, `prob6`, `em6_0`, `em6_1`, `em6_2`, `em6_3`, `em6_4`, `em6_5`, `text7_0`, `text7_1`, `BroadcastTextID7`, `lang7`, `prob7`, `em7_0`, `em7_1`, `em7_2`, `em7_3`, `em7_4`, `em7_5`, `VerifiedBuild`)
VALUES
(300184, 'Seid gegrüsst, $C$B$BDie Handelsgilde der Gobbline kommt weit herum. Falls Ihr interessiert seid, könnten wir Euch ein Stückchen mitnehmen.$B$BWo möchtet Ihr hinreisen ?', '', 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, 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);


-- ----------------------------------------------------------------------------------------------------
-- Table: creature
-- ----------------------------------------------------------------------------------------------------
INSERT INTO `creature`
(`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `VerifiedBuild`)
VALUES
(7216710, 202090, 0, 1, 1, 0, 0, -14286.5, 545.609, 8.91559, 1.96371, 300, 0, 0, 2769, 0, 0, 0, 0, 0, 0);

-- ----------------------------------------------------------------------------------------------------
-- Table: smart_scripts
-- ----------------------------------------------------------------------------------------------------
INSERT INTO `smart_scripts`
(`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`)
VALUES
(202090, 0, 0, 0, 62, 0, 100, 0, 60179, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, -8403, 1320, 6.75, 6.18, 'Reisebegleiter - On Gossip select - Teleport nach Sturmwind'),
(202090, 0, 1, 0, 62, 0, 100, 0, 60179, 1, 0, 0, 62, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, -6933, -4927, 0.72, 1.45, 'Reisebegleiter - On Gossip select - Teleport Dampfdruckpier in Tanaris');

Das gossip_menu habe ich aber auch mitgepostet und die creature id habe ich auf 60000 geändert. Werde jetzt noch einen zweiten Eintrag erstellen, vielleicht funktioniert der NPC dann /emoticons/default_smile.png

So,

nachdem ich jetzt auch den npc_text eingepflegt habe, erscheint das Menu wenigstens schonmal, leider taucht kein Untermenu auf.

EDIT:

Ok das mit dem Untermenu habe ich gelöst, einfach da auch einen zweiten Eintrag erstellt und siehe da es geht /emoticons/default_biggrin.png

EDIT2:

Die Teleportscripts werden nicht ausgeführt /emoticons/default_sad.png

SET @ENTRY := 60000;
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`[email protected];
DELETE FROM `smart_scripts` WHERE `entryorguid`[email protected] AND `source_type`=0;
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(@ENTRY,0,2,0,62,0,100,0,60001,1,0,0,62,0,0,0,0,0,0,8,0,0,0,-8839.04,614.444,92.9018,0.806958,"Teleport - SW"),
(@ENTRY,0,3,0,62,0,100,0,60001,2,0,0,62,0,0,0,0,0,0,8,0,0,0,-4938.132812,-934.242981,503.05246,2.270094,"Teleport - IF");

Hatten deine gossip_menu_options nicht die menu_id 60000 ? Im Script ist es 60001. und bei id unterscheidet es sich irgendwie auch von meinem Beispiel. Die Bedeutung aller Werte findest du in einer langen Tabelle im Wiki.

PS: Kennst du den SAI Editor zum Bearbeiten von Scripts ?

Ich denke da ist irgendwo ein Fehler im Gossip System… Hab das für Trinity und Arkania getestet, beide reagieren gleich…

Untermenüs: funktionieren nur für GOSSIP_ICON_CHAT = 0, //white chat bubble… Der Wert 3 “als Buch” sollte natürlich auch gehen, aber ist ohne Reaktion… Die 2 “Flight Master” geht auch nicht. ( Berichtigung: Sie gehen, wenn der letzte Menü-Eintrag einer Seite GOSSIP_ICON_CHAT = 0 ist.

Die SmartAI geht immer noch nicht.

(die Funktion 62 selber geht, denn das CloseGossip wird ausgeführt. allerding von einer Chat=0 Zeile)

Hier meine letzte Version:

– the teleport npc is located in human startarea, between the two covered wagons

insert ignore creature_template (entry) value (60000);
update creature_template set modelid1=28006,name=“Merlin”,subname=“Teleport Service”,gossip_menu_id=60000,faction=35,npcflag=33562639, AIName=“SmartAI” where entry=60000;

delete from creature where guid=15455064;
insert into creature values (15455064,60000,0,1,1,0,0,0,1,-8899.1,-108.92,81.85,4.0438,300,5,0,0,0,0,0,0,0,0);

delete from gossip_menu where entry in (60000,60001,60002);
INSERT INTO gossip_menu VALUES (60000, 60000);
INSERT INTO gossip_menu VALUES (60001, 60001);
INSERT INTO gossip_menu VALUES (60002, 60002);

delete from npc_text where ID in (60000,60001,60002);
insert into npc_text (ID,text0_0) values (60000,“You want to travel?”);
insert into npc_text (ID,text0_0) values (60001,“Please choose youre Alliance target”);
insert into npc_text (ID,text0_0) values (60002,“Please choose youre Horde target”);

delete from gossip_menu_option where menu_id in (60000,60001,60002);
INSERT INTO gossip_menu_option VALUES (60000, 1, 3, “Hauptstädte [Allianz]”, 0, 1, 1, 60001, 1, 0, 0, null, 0);
INSERT INTO gossip_menu_option VALUES (60000, 2, 3, “Hauptstädte [Horde]”, 0, 1, 1, 60002, 1, 0, 0, null, 0);
INSERT INTO gossip_menu_option VALUES (60000, 10, 0, “Kein Interesse!”, 0, 1, 1, 0, 0, 0, 0, null, 0);
INSERT INTO gossip_menu_option VALUES (60001, 1, 2, “Sturmwind”, 0, 1, 1, 0, 0, 0, 0, null, 0);
INSERT INTO gossip_menu_option VALUES (60001, 10, 0, “Kein Interesse!”, 0, 1, 1, 0, 0, 0, 0, null, 0);
INSERT INTO gossip_menu_option VALUES (60002, 1, 2, “Ogrimmar”, 0, 1, 1, 0, 0, 0, 0, null, 0);
INSERT INTO gossip_menu_option VALUES (60002, 10, 0, “Kein Interesse!”, 0, 1, 1, 0, 0, 0, 0, null, 0);

delete from smart_scripts where entryorguid=60000;
INSERT INTO smart_scripts VALUES (60000, 0, 1, 0, 62, 0, 100, 0, 60001, 1, 0, 0, 62, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, -8824.78, -158.05, 80.12, 3.37, “Teleport - SW”);
INSERT INTO smart_scripts VALUES (60000, 0, 2, 0, 62, 0, 100, 0, 60002, 1, 0, 0, 62, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, -8914.39, -134.37, 80.50, 5.03, “Teleport - SW”);

– “no interest” has id 10, so there are place for expansion
INSERT INTO smart_scripts VALUES (60000, 0, 3, 0, 62, 0, 100, 0, 60000, 10, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, “close gossip”);
INSERT INTO smart_scripts VALUES (60000, 0, 4, 0, 62, 0, 100, 0, 60001, 10, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, “close gossip”);
INSERT INTO smart_scripts VALUES (60000, 0, 5, 0, 62, 0, 100, 0, 60002, 10, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, “close gossip”);

ps. die Zielposition sind nicht die Hauptstädte, sondern gehen nur ein paar Meter weiter weg…

Frank

Hier mal mein überarbeitetest Tele-NPC Script, leider funktionieren die SAI’s nicht, trotz Erstellung/Bearbeitung mit dem SAI-Editor.

/* --------------------------------------------------------
PhaseV's Tele-NPC-Script Beta 1.0
for TrinityCore rev. 36e32cc242b3
-------------------------------------------------------- */

SET NAMES utf8;

-- ----------------------------------------------------------------------------------------------------
-- Table: creature_template
-- ----------------------------------------------------------------------------------------------------
DELETE FROM `creature_template` WHERE `entry`=60000;
INSERT INTO `creature_template` VALUES ('60000', '0', '0', '0', '0', '0', '28006', '0', '0', '0', 'Merlin', 'Teleport Service', 'Directions', '60000', '80', '80', '0', '35', '1', '1', '1.14286', '1', '1', '0', '0', '0', '1', '1', '1', '2', '2048', '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', 'SmartAI', '0', '3', '1', '1', '1', '1', '1', '1', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '2', 'SmartAI', '0');

-- ----------------------------------------------------------------------------------------------------
-- Table: gossip_menu
-- ----------------------------------------------------------------------------------------------------
DELETE FROM `gossip_menu` WHERE `entry`=60000;
INSERT INTO `gossip_menu` VALUES ('60000', '60000');

-- ----------------------------------------------------------------------------------------------------
-- Table: gossip_menu_option
-- ----------------------------------------------------------------------------------------------------
DELETE FROM `gossip_menu_option` WHERE `id` IN (60000,60001);
INSERT INTO `gossip_menu_option` VALUES ('60000', '1', '3', '1. Hauptstädte [Allianz]', '0', '1', '1', '60001', '0', '0', '0', null, '0');
INSERT INTO `gossip_menu_option` VALUES ('60000', '10', '0', 'Kein Interesse!', '0', '1', '1', '0', '0', '0', '0', null, '0');
INSERT INTO `gossip_menu_option` VALUES ('60001', '1', '2', 'Sturmwind', '0', '1', '1', '0', '0', '0', '0', null, '0');
INSERT INTO `gossip_menu_option` VALUES ('60001', '2', '2', 'Eisenschmiede', '0', '1', '1', '0', '0', '0', '0', '', '0');
INSERT INTO `gossip_menu_option` VALUES ('60001', '10', '0', 'Kein Interesse!', '0', '1', '1', '60000', '0', '0', '0', '', '0');

-- ----------------------------------------------------------------------------------------------------
-- Table: npc_text
-- ----------------------------------------------------------------------------------------------------
DELETE FROM `npc_text` WHERE `menu_id` IN (60000,60001);
INSERT INTO `npc_text` VALUES ('60000', 'Herzlich Willkommen $N,$B$BWas kann ich für dich tun?', null, '0', '0', '0', '0', '0', '0', '0', '0', '0', null, null, '0', '0', '0', '0', '0', '0', '0', '0', '0', null, null, '0', '0', '0', '0', '0', '0', '0', '0', '0', null, null, '0', '0', '0', '0', '0', '0', '0', '0', '0', null, null, '0', '0', '0', '0', '0', '0', '0', '0', '0', null, null, '0', '0', '0', '0', '0', '0', '0', '0', '0', null, null, '0', '0', '0', '0', '0', '0', '0', '0', '0', null, null, '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');
INSERT INTO `npc_text` VALUES ('60001', 'Bitte wähle eine Allianz-Stadt aus', null, '0', '0', '0', '0', '0', '0', '0', '0', '0', null, null, '0', '0', '0', '0', '0', '0', '0', '0', '0', null, null, '0', '0', '0', '0', '0', '0', '0', '0', '0', null, null, '0', '0', '0', '0', '0', '0', '0', '0', '0', null, null, '0', '0', '0', '0', '0', '0', '0', '0', '0', null, null, '0', '0', '0', '0', '0', '0', '0', '0', '0', null, null, '0', '0', '0', '0', '0', '0', '0', '0', '0', null, null, '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');

-- ----------------------------------------------------------------------------------------------------
-- Table: smart_scripts
-- ----------------------------------------------------------------------------------------------------
DELETE FROM `smart_scripts` WHERE `entryorguid`=60000;
INSERT INTO `smart_scripts` VALUES ('60000', '0', '0', '0', '62', '0', '100', '0', '60001', '1', '0', '0', '62', '0', '0', '0', '0', '0', '0', '8', '0', '0', '0', '-8839.04', '614.444', '92.9018', '0.806958', 'Teleport - SW');
INSERT INTO `smart_scripts` VALUES ('60000', '0', '1', '0', '62', '0', '100', '0', '60001', '2', '0', '0', '62', '0', '0', '0', '0', '0', '0', '8', '0', '0', '0', '-4938.13', '-934.243', '503.052', '2.27009', 'Teleport - IF');

unter [COLOR=rgb(136,0,0)]-- Table: creature_template hast Du in der creature_template 2 mal den Text SmartAI drin. einmal unter AIName was richtig ist, und unter ScriptName was falsch ist.

Dann hast Du alle Zahlen ebenfalls in ’ Hochkomma gesetzt. Das ist nicht richtig. Nur datum und string werden mit ’ übergeben. Das wäre für viele Admins schon ein Grund solch einen patch nicht anzunehmen.

wenn ich Deine SQL Strings so ausführe, bekomme ich einen Fehler. Die länge passt nicht. Scheinbar haben du/ich die letzten Core-Updates nicht eingespielt.

Schau Dir mal mein Listing an.

1.) Lässt sich besser lesen. Man findet Fehler leichter als in langen 0,0,0,0,0, Kolonnen…

2.) es treten weniger Fehler auf, weil nur die wirklich wichtigen Daten verändert werden.

Das mit den Hochkomma bei SQL stimmt nicht. Zahlen dürfen auch in Hochkomma stehen.

Und in deinem script fehlen die Feldnamen, was sehr gefährlich sein kann und nicht selbstbeschreibend ist. Und wenn dann noch die Datenbanken nicht uptodate sind, kann man Fehler wirklich lange suchen.

für MySQL darf es das gerne, aber es entspricht nicht den Vorgaben von TC. Schau bitte mal unter http://collab.kpsn.org/display/tc/SQL+Guidelines

Das ich die Namen weg lasse, ist für das lesen besser. Beim Fragen anderer ist gerade das schnelle überfliegen wichtig. Nicht jeder will den fremden fix installieren wollen. “Rumms” sind wichtige Teile der DB gelöscht oder überschrieben. Dann noch Tools aufrufen.

Ich setze möglichst alles in eine Zeile. Lasse Sachen weg die nichts mit der Frage zu tun haben. Dann wird viel eher konstruktive Hilfe gegeben.

Wenn dann der Script abgegeben wird, ist Fehlervermeidung wichtig. Dann natürlich alle Angaben wie Namen, Werte und Bereiche mit angeben…

Naja, ich bin nicht davon ausgegangen, dass diese Scripts als Contribution bei TC reinkommen sollen. Denn wenn man die Guidelines beachten müsste, gälte auch dies: Delete before insert into and always put fields in the query.

Einige Software fügt beim Exportieren eben aus Bequemlichkeit überall Hochkommas an. Das ist dann praktisch nur noch von Hand zu entfernen und ziemlich fehlerträchtig. Und so Forenbeiträge sind ja manchmal auch noch nach Jahren nützlich. Meistens stimmt dann aber die DB Struktur nicht mehr überein. Anhand der Feldnamen kann man es aber noch einigermassen nachvollziehen, was gemeint war.

Aber egal, ist ja nicht so wichtig /emoticons/default_wink.png Ich hoffe, ihr kriegt das Ding noch zum laufen ^^

ja mit Deiner Hilfe ging es… Als Target war 8 (TARGET_POSITION) nicht richtig, sondern 7 (TARGET_ACTION_INVOKER), dort gibt es ebenfalls Positions-Angaben und damit ging es.

Der Fehler, dass in jeder Seite als letztes Element ein Chat Element stehen muss, bleibt aber bestehen.

Das lese freundliche :slight_smile: Ergebnis wäre dann:


-- the teleport npc is located in human startarea, between the two covered wagons 
 
SET NAMES utf8;
 
insert ignore creature_template (entry) value (60000);
update creature_template set modelid1=28006,name="Merlin",subname="Teleport Service",gossip_menu_id=60000,faction=35,npcflag=33562639, AIName="SmartAI" where entry=60000;

delete from creature where guid=15455064;
insert into creature values (15455064,60000,0,1,1,0,0,0,1,-8899.1,-108.92,81.85,4.0438,300,5,0,0,0,0,0,0,0,0);

delete from gossip_menu where entry in (60000,60001,60002);
INSERT INTO `gossip_menu` VALUES (60000, 60000);
INSERT INTO `gossip_menu` VALUES (60001, 60001);
INSERT INTO `gossip_menu` VALUES (60002, 60002);

delete from npc_text where ID in (60000,60001,60002);
insert into npc_text (ID,text0_0) values (60000,"You want to travel?");
insert into npc_text (ID,text0_0) values (60001,"Please choose youre Alliance target");
insert into npc_text (ID,text0_0) values (60002,"Please choose youre Horde target");

delete from gossip_menu_option where menu_id in (60000,60001,60002);
INSERT INTO `gossip_menu_option` VALUES (60000, 1, 3, "Hauptstädte [Allianz]", 0, 1, 1, 60001, 1, 0, 0, null, 0);
INSERT INTO `gossip_menu_option` VALUES (60000, 2, 3, "Hauptstädte [Horde]", 0, 1, 1, 60002, 1, 0, 0, null, 0);
INSERT INTO `gossip_menu_option` VALUES (60000, 10, 0, "Kein Interesse!", 0, 1, 1, 0, 0, 0, 0, null, 0);
INSERT INTO `gossip_menu_option` VALUES (60001, 1, 2, "Sturmwind", 0, 1, 1, 0, 0, 0, 0, null, 0);
INSERT INTO `gossip_menu_option` VALUES (60001, 10, 0, "Kein Interesse!", 0, 1, 1, 0, 0, 0, 0, null, 0);
INSERT INTO `gossip_menu_option` VALUES (60002, 1, 2, "Ogrimmar", 0, 1, 1, 0, 0, 0, 0, null, 0);
INSERT INTO `gossip_menu_option` VALUES (60002, 10, 0, "Kein Interesse!", 0, 1, 1, 0, 0, 0, 0, null, 0);

delete from smart_scripts where entryorguid=60000;
INSERT INTO `smart_scripts` VALUES (60000, 0, 1, 0, 62, 0, 100, 0, 60001, 1, 0, 0, 62, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, -8824.78, -158.05, 80.12, 3.37, "Teleport - SW");
INSERT INTO `smart_scripts` VALUES (60000, 0, 2, 0, 62, 0, 100, 0, 60002, 1, 0, 0, 62, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, -8914.39, -134.37, 80.50, 5.03, "Teleport - SW");

-- "no interest" has id 10, so there are place for expansion
INSERT INTO `smart_scripts` VALUES (60000, 0, 3, 0, 62, 0, 100, 0, 60000, 10, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "close gossip");
INSERT INTO `smart_scripts` VALUES (60000, 0, 4, 0, 62, 0, 100, 0, 60001, 10, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "close gossip");
INSERT INTO `smart_scripts` VALUES (60000, 0, 5, 0, 62, 0, 100, 0, 60002, 10, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, "close gossip");

Es braucht einfach mind. 2 anwählbare Optionen. Das ist übrigens kein Trinity Fehler sondern im WoW Client so drin. Zumindest kenne ich das Problem auch von anderen Cores. Es ist einfach ziemlich fies, wenn man es nicht weiss ^^

Jetzt geht alles, danke euch vielmals für eure Hilfe.

Werden dann mein Script hier zum DL anbieten, sobald es komplett fertig ist /emoticons/default_biggrin.png