Ich habe die Funktion etwas erweitert, weil man ja beide Namen abrufen muss:
Code:
GetPlayerNameOrig = GetPlayerName
function GetPlayerName(_player)
local name = GetPlayerNameOrig(_player)
if name == "Praphat" then -- für Spieler 1 leer lassen
local knight1 = Logic.GetKnightID(_player)
if knight ~= 0 then
return XGUIEng.GetStringTableText("Names/" .. Logic.GetEntityTypeName(Logic.GetEntityType(knight1))) or ""
end
elseif name == "Saraya" then
local knight2 = Logic.GetKnightID(_player)
if knight ~= 0 then
return XGUIEng.GetStringTableText("Names/" .. Logic.GetEntityTypeName(Logic.GetEntityType(knight2))) or ""
end
end
return name
end
Jetzt gehts, getestet!
Ist aber doch nicht so ganz einfach:
Diesen Code in FMA aufrufen: _knight1
Code:
function PraphatSpeak1()
local knightID = Logic.GetEntityIDByName("Praphat")
Logic.SetPrimaryKnightID(3, knightID);
end
dann diesen Codes bei Bedarf mit Reward MSF aufrufen - Jetzt spricht Saraya _knight2
Code:
function SarayaSpeak()
local knightID = Logic.GetEntityIDByName("Saraya")
Logic.SetPrimaryKnightID(3, knightID);
Logic.ExecuteInLuaLocalState('g_PlayerPortrait[3] = "H_Knight_Saraya"');
end
Gesicht wieder ändern - jetzt spricht wieder Praphat _knight1
Code:
function PraphatSpeak()
local knightID = Logic.GetEntityIDByName("Praphat")
Logic.SetPrimaryKnightID(3, knightID);
Logic.ExecuteInLuaLocalState('g_PlayerPortrait[3] = "H_Knight_Praphat"');
end
Dann stimmen auch die Gesichter.
Dazwischen muss aber immer eine Quest von einem anderem Spieler kommen,
sonst funktionieren zwar die Namen, aber nicht die Gesichter!
Seltsam, aber Tatsache!
- hab ich beim Testen festgestellt
Danke nochmal, war wieder mal super Teamwork
Lesezeichen