Crash bei Levelwechsel

Posted By: Deha

Crash bei Levelwechsel - 09/23/09 17:22

Hallo!
Also ich habe immer noch ein Problem mit einem Levelwechsel. Ich habe einen Code zusammengebastelt der anscheinend nur beinahe funktioniert. Ich habe eine action erstellt, bei der normalerweise bei einer Berührung mit einem anderen Entity ein Levelwechsel erfolgt.
Wenn ich aber mit meiner Spielfigur mit dem Entity zum Levelwechseln kollidiere, dann erhalte ich folgende Fehlermeldung:
Error E1513 "Crash in Impact event"
Danach wechsel ich allerdings in das von mir gewünschte Level. Allerdings sind sämtliche vorherigen Einstellungen nicht mehr vorhanden!
z.B. friert mein Bildschrim ein und Ansicht wechselt von 3rd person view auf first person view.
Es wird also anscheinend das Level geladen, aber alle vorherigen Einstellungen verschwinden...weiß jemand Rat?
Ich würde mich über Hilfestellung sehr freuen! ;-)

Achso am besten poste ich auch gleich nochmal meinen Levelwechsel-code! Das könnte die Fehlersuche erleichtern! XD

Die Funktion, 'impact_event' genannt und darunter gleich die action 'colider'

function impact_event()
{
if (event_type==EVENT_IMPACT)
{
level_load("cave.wmb");
wait(3);
}
}

action colider()
{
my.emask |= ENABLE_IMPACT;
my.event = impact_event;
set(my,POLYGON);
}

Posted By: Xarthor

Re: Crash bei Levelwechsel - 09/23/09 17:34

Code:
function impact_event()
{
  if(event_type == EVENT_IMPACT)
  {
    my.event = NULL;
    my.skill2 = 0;
  }
}

action colider()
{
  my.emask |= ENABLE_IMPACT;
  my.event = impact_event;
  set(my,POLYGON);
 
  my.skill2 = 1;
  while(my.skill2) { wait(1); }

  level_load("cave.wmb");
}



Do not load the level directly from the event function OR put a wait(1); before load the level. Maybe this does the trick.
Posted By: Deha

Re: Crash bei Levelwechsel - 09/23/09 18:13

Thanks!
The crash was fixed, but i still cannot move on the next level. Any idea?

Der Crash wurde behoben, aber ich kann mich immer noch nicht im zweiten level bewegen, irgendwelche Ideen?
Posted By: Xarthor

Re: Crash bei Levelwechsel - 09/23/09 18:23

Zu erst: Sorry das ich auf english geantwort habe!
Da topic name und inhalt deutsch ist werde ich in deutsch weiter schreiben.

Zu deinem problem:
Ist in deinem level das du lädst eine entity vorhanden mit einer zugewiesenen action die du bewegen können solltest?

Was zu beachten ist:
- Alle scripts die im neu zuladenen level verwendung finden müssen per include eingebunden sein, ansonsten werden die entsprechenden actions nicht gefunden
- Alle functions deren my pointer nicht NULL sind werden bei einem level_load aufruf beendet. Soll also dein spieler sich im nächsten level erstellt werden (falls er dort nicht schon vorhanden ist), so musst du ihn nach dem level_load neu per ent_create erstellen.
Die nötigen skills für gesundheit etc. solltest du in vars oder einem var array zwischenspeichern, damit sie das level_laden überdauern.
Posted By: Deha

Re: Crash bei Levelwechsel - 09/28/09 20:49

Es tut mir sehr leid, dass ich erst jetzt antworte, aber ich habe vorher leider keine Zeit gefunden, mich damit auseinander zu setzen! :-(
Also ich habe eine Entity, die nicht von mir gesteuert wird die action zugewiesen. Ich möchte nun mit meiner Spielerfigur bei einer Kollisiion erreichen,dass das Level wechselt. Es klappt ja auch soweit mit dem Wechsel, nur kann ich danach halt meine Spielerfigur weder sehen noch bewegen...
Mir ist noch nicht ganz klar,wie ich das per include einfügen soll.
Die action befindet sich in meinem mainscript. Wie soll ich also die Funktion einbinden? Sie müssten doch in dem Fall automatisch übernommen werden,oder?
Ich habe auch schon versucht, mein Mainscript mit der action unter map properties dem neuen Level anzuhängen. Hat leider nichts genützt.Auch wenn ich eine neue Spielerfigur ins zweite level setze mit player walk funktion, passiert nichts..irgend ein Rat?
Posted By: Xarthor

Re: Crash bei Levelwechsel - 09/29/09 07:34

Lass es mich so formulieren:
Benutze EIN main script das alle nötigen sachen enthält oder per include einbindet.
Wenn du im zweiten level dem spieler die action player_walk gibst und diese action gibt es nicht im script das du in level 1 benutzt dann kann es nicht funktionieren.

Denn: Bei einem level wechsel per level_load bleiben die scripts die selben nur das level wird neu geladen!
Posted By: Deha

Re: Crash bei Levelwechsel - 09/29/09 15:19

Ja ok, soweit habe ich das verstanden.
Danke schon mal dafür! ;-)
Aber...
alle wichtigen Funktionen, wie auch der Levelwechsel befinden sich ja im Main-script. Sonstige Funktionen hab ich per include angehängt.
Somit müsste es bei einem Levelwechsel doch automatisch übernommen werden, oder nicht?
Was ist denn mit der 'ent_create' Funktion? Wo plaziere ich die?
(my.event = NULL;)--> Ist das nicht der pointer der auf Null stehen muss, damit bei einer level_load Funktion nichts gelöscht wird? Fragen über Fragen..sorry, aber ich habs noch nicht ganz! XD
© 2024 lite-C Forums