Client frozen

05/26/2014 14:24 AriaSwitkona#1
Hey, ich hab mal wieder eine Frage: Und zwar habe ich das Problem, dass wenn ich lange nichts im MT2 Fenster mache (z.b. Privatshop offen haben usw), das Bild einfriert(standbild, wenn man minimiert und wieder maximiert-> Blackscreen). Bisher habe ich es so gemacht, dass ich den Char alle paar min aufs Mount hab auf und absteigen lassen. Das hat zum einen verhindert, dass es einfriert und es ist auch möglich damit das eingefrohrene Spiel wieder zum laufen zu bekommen. Nun ist das extrem auffällig und nicht grad elegant und nun auch endlich zu meiner eigendlichen Frage: Was passiert wenn man auf bzw absteigt? Was wird da neu geladen und kann man das via Python evt auch ohne das auf- und absteigen lösen?

mfg Arya
05/26/2014 14:45 ExoBiTe™#2
Hey also bei mir im Client ist es auch so, und ich kann dir bei deinem Problem nicht diretk helfen, aber ich kann dir sagen das es nicht nur durchs mount absteigen/aufsteigen ist. Ich tippe darauf, das es irgendwas mit "updates des spieles" zutun hat. Damit meine ich das die Welt immer "geupdatet" wird, wenn ein User die rüssi wechselt, jemadn vom Mount absteigt, oder ähnliches. Wie ich darauf komme? -> Ich kann einen Blackscreen wieder weg machen, indem ich aufs Mount auf/absteige mit Strg+g oder mit /m 1093 nen Sensi spawne. Dann gehlt der Blackscreen bei mir immer weg.
Also ich hoffe das dir das was ich geschrieben habe, dir irgendwie weiterhilft.
Mfg
05/26/2014 19:33 AriaSwitkona#3
Leider hat es mir nicht geholfen. Ich hab bisher versucht die app.Update, app.Render und die Map neu zu laden. Leider hat nichts davon was gebracht.
05/27/2014 06:54 Tyrar#4
Ich habe mir das noch nicht genau angeschaut, dürfte aber mit einem lost D3D8 Device zusammen hängen.
Sobald dieses als "lost" gilt muss man das resetten und einige Resourcen neu laden.
Bei einem wirklich fest stehendem Blackscreen könnte man mit net.Warp versuchen die Map neu zu laden.
Aber wirklich genau kann ich nichts sagen.
05/28/2014 16:22 AriaSwitkona#5
Das mit net.Warp aht geklappt, nur es hat einen nebenefekt: Die npc und pc werden immer wieder neu erstellt wenn man sich bewegt, sie ich also an anderen positionen auf dem display bekommen. Ein LSD-Trip ist nichts dagegen xD

edit: Dank euch hab ich mir doch noch was zurechtbasteln können, was für mich funktioniert. Falls jemand mal in ähnlich Swierigkeiten kommen sollte:
Code:
import net
import background
import player
map_name = background.GetCurrentMapName()
x, y, z = player.GetMainCharacterPosition()
net.Warp(x,y)
background.Initialize()
background.LoadMap(map_name, x, y, 0)
background.SetShadowLevel(background.SHADOW_ALL)
evt nicht die eleganteste Lösung, aber unauffällig und von daher reichts für mich^^. Ein kleiner Nachteil: Es verursacht einen 1,5 bis 2 sec Lag aber naja damit kann ich zumindest leben.
mfg und nochmals vielen Dank Arya