2 registered members (OptimusPrime, AndrewAMD),
14,580
guests, and 5
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
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
Serious User
|
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
OP
Member
|
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
fogman
Expert
|
Expert
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.  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
OP
Member
|
OP
Member
Joined: Aug 2007
Posts: 182
|
|
|
|
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
Serious User
|
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.
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.
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|