Gamestudio Links
Zorro Links
Newest Posts
Zorro 2.70
by jcl. 09/29/25 09:24
optimize global parameters SOLVED
by dBc. 09/27/25 17:07
ZorroGPT
by TipmyPip. 09/27/25 10:05
assetHistory one candle shift
by jcl. 09/21/25 11:36
Plugins update
by Grant. 09/17/25 16:28
AUM Magazine
Latest Screens
Rocker`s Revenge
Stug 3 Stormartillery
Iljuschin 2
Galactic Strike X
Who's Online Now
1 registered members (TipmyPip), 18,449 guests, and 6 spiders.
Key: Admin, Global Mod, Mod
Newest Members
krishna, DrissB, James168, Ed_Love, xtns
19168 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Problem bei Levelwechsel #244950
01/07/09 17:48
01/07/09 17:48
Joined: Aug 2007
Posts: 182
AmenophisIV Offline OP
Member
AmenophisIV  Offline OP
Member

Joined: Aug 2007
Posts: 182
Hi,

ich habe ein Spiel mit neun Leveln.
Problem:
Ich starte Level 1. Wenn ich in Level 2 gelange, erscheint eine Fehlermeldung, die besagt, das die Aktion zum Wechseln des Levels nicht gefunden wurde. Beim Drücken von OK wird das Lvel normal aufgerufen, jedoch kann man am Ende desd Levels nicht ins nächste gelangen. Das verhält sich bei jedem Level so. Starte ich bei Level 4, erscheint bei Beginn von Level 5 die selbe Fehlermeldung, Level 6 betreffend.
Hier der Code:

action Level_2
{
// Player=Spieler-Objekt
while(vec_dist(player.x,my.x)>100)
{
wait(1);
}
msg_show("Level geschafft!",5);
wait(2);
LEVEL_load("Level_2.wmb");
}

Was mache ich falsch?^^

Re: Problem bei Levelwechsel [Re: AmenophisIV] #244960
01/07/09 18:26
01/07/09 18:26
Joined: Feb 2006
Posts: 1,011
Germany
pegamode Offline
Serious User
pegamode  Offline
Serious User

Joined: Feb 2006
Posts: 1,011
Germany
Es wäre gut, wenn Du dabei schreiben würdest, ob Du lite-C oder C-Script benutzt, und welche Fehlermeldung Du genau bekommst (Error-Code).

Von der Syntax her sollte es C-Script sein, allerdings solltest Du Dir angewöhnen auch bei C-Script Groß- und Kleinschreibung zu beachten, auch wenn dies bei C-Script nicht so sehr von Belang ist. Also besser "level_load" anstatt "LEVEL_load".

Das "wait(2)" gehört auch in die letzte Zeile nach dem level_load.

Ist "msg_show" Deine eigene Funktion? Wie sieht diese aus?

Warum benutzt Du kein EVENT für den Levelwechsel, so dass der Level gewechselt wird, wenn der Spieler das Object berührt anstatt die ganze Zeit die Distanz zu berechnen, oder muss es unbedingt ein Abstand von 100 sein? In dem Fall könntest Du dann auch c_scan dazu verwenden.

Gruß
Pegamode.

PS: Du solltest hier besser auf englisch schreiben, da dann mehr Leute Deine Frage lesen und beantworten können.

Last edited by pegamode; 01/07/09 22:04.
Re: Problem bei Levelwechsel [Re: pegamode] #245145
01/08/09 15:49
01/08/09 15:49
Joined: Aug 2007
Posts: 182
AmenophisIV Offline OP
Member
AmenophisIV  Offline OP
Member

Joined: Aug 2007
Posts: 182
I´m using C-Script.
I read that it doesn´t matter whether u use the upper or lower case or both.
I get the script from... I don´t know, it´s long ago I think...
I used it often in projects and there was never a problem like this. Except when I tried to change the Level and change then back, the script was faulty.
If theres a better Script for changing Levels, someone could post it.
Ah, the problem report,

//Script of Level 1:

action Level_2
{
while(vec_dist(player.x,my.x)>100)
{
wait(1);
}
msg_show("",5);
wait(2);
LEVEL_load("Level_2.wmb");
}

//Script of Level 2:

action Level_3
{
while(vec_dist(player.x,my.x)>100)
{
wait(1);
}
msg_show("",5);
wait(2);
LEVEL_load("Level_3.wmb");
}

While changing from Level 1 to Level 2:
Problem report:

<Level_3> Action not found.



Last edited by AmenophisIV; 01/08/09 15:50.
Re: Problem bei Levelwechsel [Re: AmenophisIV] #245147
01/08/09 16:00
01/08/09 16:00
Joined: Apr 2005
Posts: 4,506
Germany
F
fogman Offline
Expert
fogman  Offline
Expert
F

Joined: Apr 2005
Posts: 4,506
Germany
Du versuchst in einer Action ein Level zu laden,
das kann nix werden, da die Action beim Levelwechsel abgebrochen wird. smile

Probier mal folgendes:

wait(2);
my = NULL;
LEVEL_load("Level_3.wmb");


no science involved
Re: Problem bei Levelwechsel [Re: fogman] #245150
01/08/09 16:20
01/08/09 16:20
Joined: Aug 2007
Posts: 182
AmenophisIV Offline OP
Member
AmenophisIV  Offline OP
Member

Joined: Aug 2007
Posts: 182
the same problem

Re: Problem bei Levelwechsel [Re: AmenophisIV] #245288
01/09/09 08:48
01/09/09 08:48
Joined: Feb 2006
Posts: 1,011
Germany
pegamode Offline
Serious User
pegamode  Offline
Serious User

Joined: Feb 2006
Posts: 1,011
Germany
That's the code I used 3 years ago in a project of mine ... the number of the level to load is stored in a skill of the entity that uses this action.

Code:
DEFINE _levelNr,SKILL1;
DEFINE _levelPos,SKILL2;

bmap loading_level_bmap = <loading_level.tga>;
panel loading_level_panel {
	bmap = loading_level_bmap;
	flags = refresh,d3d,overlay;
}

function load_new_level (lName,entPosName) {
	loading_level_panel.pos_x = (screen_size.x - bmap_width(loading_level_bmap))/2;
	loading_level_panel.pos_y = (screen_size.y - bmap_height(loading_level_bmap))/2;
	loading_level_panel.visible = on;		
	wait(2);
	my = null; // make this action a global function
	gid01_level_state = gid01_level_not_loaded;	
	
	level_load(lName);
	wait(2);
	
	you = ptr_for_name (entPosName);
	me = ptr_for_name ("gfinal");
	if (me != null && you != null) {	  		
	  vec_set(me.x, you.x);
    vec_set(me.pan, you.pan);   
    vec_set(plBiped01_force_vec,nullvector);
	  vec_set(plBiped01_ang_force_vec,nullvector);
	  vec_set(plBiped01_flag_array,nullvector); 
	  panAtStart = 0;
	  playerTargetPan = you.pan;
	  lastPlayerTargetPan = playerTargetPan;
	}	
	if (me != null) {
	  if(str_cmpi (currentPlayerModel, "punk") == 1) {
      ent_morph(me,punk_model);
    }
  }
	
	getInFront();
	
	gid01_level_state = gid01_level_loaded;	
	wait(2);
	loading_level_panel.visible = off;
	bmap_purge(loading_level_bmap);	
}

string levelString[30]; 
string levelNumber[30];
string entPosString[30]; 
string entPosNumber[30];

function load_level_events {
	if(EVENT_TYPE == event_impact) {
		if (you == plSelect_curr_ent) {	
			my.enable_impact = off;
			my.passable = on;
		  
		  str_cpy(levelString,"level_");
		  if (my._levelNr < 100) {
		  	str_cat(levelString,"0");
		  }
		  if (my._levelNr < 10) {
		  	str_cat(levelString,"0");
		  }
		  str_for_num(levelNumber,my._levelNr);		    
      str_cat(levelString,levelNumber);
      str_cat(levelString,".wmb");
      
      str_cpy(entPosString,"levelPos_");
		  if (my._levelPos < 100) {
		  	str_cat(entPosString,"0");
		  }
		  if (my._levelPos < 10) {
		  	str_cat(entPosString,"0");
		  }
		  str_for_num(entPosNumber,my._levelPos);		    
      str_cat(entPosString,entPosNumber);
      
			load_new_level(levelString,entPosString);			
		}
	}
}

action level_warper {
	my.polygon = on; 	
	while(plSelect_curr_ent == NULL) {
		wait(1);
	}
	my.event = load_level_events;	
	my.enable_impact = on;		
}



Last edited by pegamode; 01/09/09 08:50.

Gamestudio download | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1