2 registered members (AndrewAMD, ozgur),
1,415
guests, and 7
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: Neues Level laden
[Re: Pappenheimer]
#313761
03/03/10 13:25
03/03/10 13:25
|
Joined: Nov 2006
Posts: 116
benija
OP
Member
|
OP
Member
Joined: Nov 2006
Posts: 116
|
wenn ich 2mal F11 drücke, wird die kollisionsbox angezeigt, kann jedoch hindurchlaufen.
auch wenn ich reset(me, PASSABLE); oder das andere verwende, passiert nichts anderes!
hab die box mal auf polygon gesetzt, jetzt lässt sie sich schieben. Wenn ich sie jedoch ins Ziel schiebe, kommt n Error!
Crash in Aim_Event Error E1513
Last edited by benija; 03/03/10 13:34.
|
|
|
Re: Neues Level laden
[Re: benija]
#313762
03/03/10 13:36
03/03/10 13:36
|
Joined: Sep 2003
Posts: 5,900 Bielefeld, Germany
Pappenheimer
Senior Expert
|
Senior Expert
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
|
Das geht ja gar nicht. HM, da ist irgendwie anders der Wurm drin. Ich habe es grad mal bei mir mit einem x-beliebigen kleinen Model probiert, dass ich am Anfang der Funktion über ent_morph für die (alte) Kiste eingesetzt habe. Funktioniert! Alles bestens! Das ist der Code von Dir, wie ich ihn modifiziert hatte und womit es einwandfrei läuft:
///////////////////////////////
#include <acknex.h>
#include <default.c>
///////////////////////////////
ENTITY* eBox;
ENTITY* ePlayer;
ENTITY* eAim;
var l_level = 1;
STRING* str1 = "Level";
STRING* str2 = ".WMB";
STRING* str3 = "";
STRING* str4 = "";
PANEL* panLevComp =
{
pos_x = 10;
pos_y = 10;
bmap = "level_comp.bmp";
flags = overlay;
}
function main()
{
level_load("Level1.WMB");
wait(2);
}
action player_walk()
{
ePlayer = me;
var anim_percW = 0;
var anim_percD = 0;
var anim_percS = 0;
var anim_perc = 0;
while(1)
{
ent_animate(my,"stand", anim_perc, ANM_CYCLE);
anim_perc+=0.5;
if(key_w)
{
my.pan =0;
c_move(my,nullvector, vector(5,0,0),GLIDE);
ent_animate(my,"run", anim_percW, ANM_CYCLE);
anim_percW+=0.5;
}
if(key_a)
{
my.pan = 90;
c_move(my,nullvector, vector(0,5,0),GLIDE);
ent_animate(my,"run", anim_percW, ANM_CYCLE);
anim_percW+=0.5;
}
if(key_d)
{
my.pan = -90;
c_move(my,nullvector, vector(0,-5,0),GLIDE);
ent_animate(my,"run", anim_percD, ANM_CYCLE);
anim_percD+=0.5;
}
if(key_s)
{
my.pan = 180;
c_move(my,nullvector, vector(-5,0,0),GLIDE);
ent_animate(my,"run", anim_percS, ANM_CYCLE);
anim_percS+=0.5;
}
wait(1);
}
}
function Box_Event()
{
if(event_type == EVENT_IMPACT)
{
if(key_w)
{
my.skill1 = 1;
//eBox.x+=1;
}
if(key_s)
{
my.skill2 = 1;
//eBox.x-=1;
}
if(key_a)
{
my.skill3 = 1;
//eBox.y+=1;
}
if(key_d)
{
my.skill4 = 1;
//eBox.y-=1;
}
}
}
action box_move()
{
eBox = me;
my.emask |=(ENABLE_IMPACT);
my.event = Box_Event;
while(1)
{
if(my.skill1)
{
c_move(me, nullvector, vector(0.5,0,0), GLIDE);
my.skill1 = 0;
}
if(my.skill2)
{
c_move(me, nullvector, vector(-0.5,0,0), GLIDE);
my.skill2 = 0;
}
if(my.skill3)
{
c_move(me, nullvector, vector(0,0.5,0), GLIDE);
my.skill3 = 0;
}
if(my.skill4)
{
c_move(me, nullvector, vector(0,-0.5,0), GLIDE);
my.skill4 = 0;
}
wait(1);
}
}
function aim_event()
{
if(event_type == EVENT_IMPACT)
{
my.event = 0;
// if(eBox.x == eAim.x || eBox.y == eAim.y)
// {
l_level++;
str_for_num(str4,l_level);
str_cat(str1,str4);
str_cat(str1, str2);
str_cpy(str3, str1);
ptr_remove(eBox);
set(panLevComp, SHOW);
wait(-3);
level_load(str3);
reset(panLevComp, SHOW);
str_trunc(str1,5);
str_trunc(str4,1);
// }
}
}
action aim()
{
// set(me, POLYGON);
ent_morph(me, "apple.mdl");
my.z +=100;
eAim = me;
my.emask |= (ENABLE_IMPACT);
my.event = aim_event;
}
|
|
|
Re: Neues Level laden
[Re: benija]
#313765
03/03/10 13:56
03/03/10 13:56
|
Joined: Sep 2003
Posts: 5,900 Bielefeld, Germany
Pappenheimer
Senior Expert
|
Senior Expert
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
|
Ich kannte bis eben ptr_remove() nicht - war mir nicht einmal in Deinem Code aufgefallen! Wenn du da nur das eine durch das andere ausgetauscht hast, wirst du meiner Meinung nach noch nicht die Ursache gefunden haben. Letztlich würde ich aber diese Sachen nicht innerhalb einer event-Funktion machen, sondern wie bei der Box-Aktion schon über einen Skill in die Hauptfunktion verlagern.
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|