Npc reagiert nicht
» Siedler Map Source Forum » Siedler DEdK Script Forum » Npc reagiert nicht
Seiten: 1
Morchul
|
#1 04.05.2020 11:37 Beiträge: 5 |
Npc reagiert nicht
Hallo zusammen ich versuche zur Zeit einen NPC zu erstellen der angesprochen werden kann.
function CreateSpeaker() Major = {} Major.name = "maj" Major.callback = bla CreateNPC(Major) end function bla(_npcId,_heroId) DisableNpcMarker(_npcId) Message("Hallo ") end
auch schon so versucht
function bla() Message("Hallo ") end
Der Npc hat den Skriptnamen "maj"
Leider funktioniert keiner der beiden Fälle der Npc reagiert nicht egal welcher Held mit ihm spricht.
Ich würde mich sehr über eure Unterstützung freuen.
Der_Deutsche
|
#2 05.05.2020 14:27 Beiträge: 349 |
Hallo!
Wenn du immer frühzeitig eine Antwort möchtest, dann komm doch mal auf dem Siedler 5 Discord: https://discord.gg/uUcfyfB
Hier werdest du leider etwas warten müssen auf deine Antwort
MfG
____________________
Nachbau von Siedler 5 Lobbys "Ubi.Com"
Updatelösungen Siedler 5 Patch 1.06
Creators Update Lösung Windows 10
Siedler 5
mcb
|
#3 05.05.2020 22:17 Beiträge: 1472 |
Also ich sehe da im Moment kein Problem. Hast du das mal mit den Debugger (oder -debugscript) laufen gelassen?
Zedeg
|
#4 06.05.2020 13:27 Beiträge: 428 |
Ich habe deinen Code gerade mal ausprobiert und keine Probleme feststellen können.
Zitat von Morchul:
Leider funktioniert keiner der beiden Fälle der Npc reagiert nicht egal welcher Held mit ihm spricht.
Heißt das, der NSC hat ein Ausrufezeichen, aber die Funktion bla wird nicht aufgerufen?
Übrigens: DisableNpcMarker muss nicht extra aufgerufen werden; das Ausrufezeichen wird automatisch entfernt.
(Falls noch die Frage bestehen sollte, was dieses -debugscript ist, von dem mcb schreibt: https://web.archive.org/web/20...als:fehlermeldungen_aktivieren)
____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski
Morchul
|
#5 07.05.2020 09:00 Beiträge: 5 |
Danke für eure Hilfe ich habe die Karte jetzt mit -debugscript gestartet und es ist wirklich eine Fehlermeldung aufgetaucht:
Error: LUA_ERRRUN: [string "Data\Script\MapTools\NPC.lua"]:168: attempt to index global 'gvMission' (a nil value) Additional info: Game turn 0 (0:00)
Dieser Beitrag wurde von Morchul am 07.05.2020 um 13:48 editiert.
Morchul
|
#6 07.05.2020 13:48 Beiträge: 5 |
Auf Grund der fehlermeldung habe ich die folgenden Zeilen eingefügt die ich in einer anderen Map gefunden habe:
gvMission = {} gvMission.PlayerID = GUI.GetPlayerID()
und jetzt funktioniert es einwandfrei.
Kann mir jemand erklären was die beiden Zeilen bewirken und weshalb sie notwendig sind?
Play4FuN
|
#7 07.05.2020 18:25 Beiträge: 704 |
Zitat von Morchul:
Kann mir jemand erklären was die beiden Zeilen bewirken und weshalb sie notwendig sind?
gvMission ist schlichtweg eine globale Variable ( "gv" ), welche im Normalfall nur die PlayerID speichert. Zumindest bei SP Karten wird die immer erstellt (in irgendeinem Skript, das ganz am Anfang geladen wird) und dann oft in Abfragen gvMission.PlayerID verwendet, anstatt z.B. GUI.GetPlayerID()
____________________
LG Play4FuN
Siedler DEdK Mapping + Scripting Tutorials
totalwarANGEL
|
#9 19.05.2020 20:15 Beiträge: 2123 |
gvMission wird im Code des Spiels erzeugt. Und da steht noch ein bisschen mehr drin, als du jetzt hast. Es wird für ziemlich viele Funktionen verwendet. Wenn ich mich richtig erinnere, auch für SetupExpedition und Co. Es sollte eigentlich von sich aus da sein. Prüfe mal, ob du das irgend wo überschreibst. Ich empfehle immer solche Konstrukte bei Tables, die vom Spiel kommen:
gvMission = gvMission or {}
____________________
Die Welt ist arschlochförmig und wir leben in der Mitte.
Seiten: 1