2 registered members (AndrewAMD, alibaba),
1,426
guests, and 9
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: Suche brauchbare Actionsripte.
[Re: Bastiuscha]
#418960
03/03/13 21:59
03/03/13 21:59
|
Joined: Nov 2007
Posts: 2,568 Germany, BW, Stuttgart
MasterQ32
Expert
|
Expert
Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
|
dein problem ist, dass wenn du das level wechselst, kein player mehr existiert. heißt, wenn du level2() aufrufst, musst du die funktion beenden (mit return) weil sonst greifst du auf einen nicht mehr existierenden spieler zu und stürzt ab
|
|
|
Re: Suche brauchbare Actionsripte.
[Re: MasterQ32]
#418961
03/03/13 22:02
03/03/13 22:02
|
Joined: Jul 2008
Posts: 2,107 Germany
rayp
X
|
X
Joined: Jul 2008
Posts: 2,107
Germany
|
z.B.
void checkForPortalAccess() {
VECTOR vecMin, vecMax;
while(1) {
if (player) { //nur wenn player da
vec_set(vecMin, player.x);
vec_set(vecMax, player.x);
vec_add(vecMin, player.min_x);
vec_add(vecMax, player.max_x);
}
if (region_check("reg_000", vecMin, vecMax)) {
level2();
//break;oder return z.b.
}
wait(1);
}
}
..
if (!player) break z.b.
Last edited by rayp; 03/03/13 22:29.
Acknex umgibt uns...zwischen Dir, mir, dem Stein dort... "Hey Griswold ... where u gonna put a tree that big ?" 1998 i married my loved wife ... Sheeva from Mortal Kombat, not Evil-Lyn as might have been expected rayp.flags |= UNTOUCHABLE;
|
|
|
Re: Suche brauchbare Actionsripte.
[Re: rayp]
#419000
03/04/13 14:10
03/04/13 14:10
|
Joined: Jun 2008
Posts: 156
Bastiuscha
OP
Member
|
OP
Member
Joined: Jun 2008
Posts: 156
|
Sicher dass es daran liegt? Denn auch wenn ich level_load weglasse, bricht es ab. Also auch ohne neues Level. Und dass es mit meinem schlechten Playerscript funktioniert, spricht auch ehr dagegen. Hmmm...Könnte es noch was anderes sein? Muss fast, möchte ich sagen.Habs natürlich trotzdem probiert, mit break und return. Hat sich nix geändert. wie sieht das mit dem If aus?
if (!player) break {
level_load("level2.wmb");
}
So? Nicht dass ich das falsch gemacht habe.
|
|
|
Re: Suche brauchbare Actionsripte.
[Re: Bastiuscha]
#419003
03/04/13 14:29
03/04/13 14:29
|
Joined: Nov 2007
Posts: 2,568 Germany, BW, Stuttgart
MasterQ32
Expert
|
Expert
Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
|
if (!player) break {
level_load("level2.wmb");
}
So? Nicht dass ich das falsch gemacht habe. Das compiliert bei mir gar nicht... Die Syntax stimmt auch nicht. sollte so aussehen:
if(!player)
return;
level_load("level2.wmb");
wobe der code an sich keinen sinn macht. du musst überprüfen, ob der player überhaupt gesetzt wurde, bevor du darauf zugreifst (warte einfach, bis ein player existiert) Das machst du am Anfang deiner Funktion hin. das eigentliche problem wird wahrscheinlich sein, dass ich in meinem code keinen player pointer setze. heißt du schreibst dir eine action, in der du den pointer setzt und dann beispielsweise fps_character oder wie das heißt aufrufst. gruß
|
|
|
Re: Suche brauchbare Actionsripte.
[Re: Bastiuscha]
#419008
03/04/13 16:40
03/04/13 16:40
|
Joined: Jun 2008
Posts: 156
Bastiuscha
OP
Member
|
OP
Member
Joined: Jun 2008
Posts: 156
|
Ups, nun funktioniert meine Entity trage Funktion nicht mehr. Hat das auch mit dem Pointer zu tun? Wenn das aktiv ist, spielt meine Steuerung verückt. Wie deaktiviert man das eigentlich im Spiel wieder? Ich lass mal die Deklarierungen dran, auch wenns bissel unübersichtlicher wird.
void grabObjects() {
ENTITY* entTemp = NULL;
while(1) {
// Solange wir die linke Maustaste gedrückt haben, wollen wir Objekte
// tragen
if (mouse_left) {
// Wenn wir bereits ein Objekt halten, aktualisiere dessen
// Position
if (entTemp != NULL) {
vec_set(entTemp.x, vector(
100*cos(camera.pan)+player.x,
100*sin(camera.pan)+player.y,
player.z+20)
);
vec_set(entTemp.pan, camera.pan);
// Wenn wir noch kein Objekt halten...
} else {
// ... Aber sich unter unserem Fadenkreuz eines befindet,
// dann nehmen wir es uns und lösen es zum Tragen von
// der Physikengine.
if (mouse_ent != NULL) {
entTemp = mouse_ent;
set(entTemp, TRANSLUCENT);
pXent_settype(entTemp, 0, 0);
}
}
// Wenn wir die linke Maustaste nicht (mehr) drücken und ein Objekt
// in den Händen halten dann lassen wir es fallen und machen es
// wieder zu einem Physikobjekt.
} else {
if (entTemp != NULL) {
reset(entTemp, TRANSLUCENT);
pXent_settype(entTemp,PH_RIGID, PH_BOX);
entTemp = NULL;
}
}
wait(1);
}
}
|
|
|
|