|
|
|
|
|
|
|
|
SGT_FW
by Aku_Aku. 05/31/26 11:05
|
|
|
|
|
XTB
by pr0logic. 05/18/26 12:27
|
|
|
1 registered members (TipmyPip),
3,500
guests, and 4
spiders. |
|
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: Script Editor beendet sich sobald ich meinen script starte
[Re: rvL_eXile]
#274499
06/27/09 00:20
06/27/09 00:20
|
Joined: Aug 2007
Posts: 1,922 Schweiz
Widi
Serious User
|
Serious User
Joined: Aug 2007
Posts: 1,922
Schweiz
|
In deinem Code hast du den my-Pointer gar nicht gesetzt, also kann das in der while Schleife gar nicht funktionieren! Willst du die Kamera an den Sturmtrooper setzen? Dann ändere folgendes: my = ent_create("sturmtroper.mdl", vector(1, 200, -243), gehen_sturmtroper); Danach zeigt der my-Pointer in der main function auf den Sturmtrooper...
Edit: warum willst du den my-Pointer auf null setzen? Dann zeigt er auf keine Entity mehr, ist ungültig (error), also nicht mehr zu gebrauchen.
Last edited by Widi; 06/27/09 00:25.
|
|
|
Re: Script Editor beendet sich sobald ich meinen script starte
[Re: Zanfty]
#274832
06/28/09 19:45
06/28/09 19:45
|
Joined: Jun 2009
Posts: 19
Zanfty
OP
Newbie
|
OP
Newbie
Joined: Jun 2009
Posts: 19
|
also der script funktioniert immer noch nicht. Vieleicht liegt es ja an etwas anderem. Ich mach einfach mal den kompleten code rein:
/////////////////////////////// #include <acknex.h> #include <default.c>
///////////////////////////////
var run_percentage; var stand_percentage; var schiessen_percentage; var walk_percentage; var rennen_percentage; var stehen_percentage; var schisen_percentage; var gehen_percentage; var munition = 2000; var one; var leben = 3; var heat = 0;
ENTITY* sturmtroper; ENTITY* gun;
action sturmtropper_death() { while(1) { if(heat>95) ent_animate (my, "run", run_percentage, ANM_CYCLE); run_percentage += 7*time_step; wait(1); } }
function gehen_sturmtroper() { while (1) { if (key_cul) my.pan += 5*time_step; ent_animate (my, "walk", walk_percentage, ANM_CYCLE); walk_percentage += 3*time_step; if (key_cur) my.pan -= 5*time_step; ent_animate (my, "walk", walk_percentage, ANM_CYCLE); walk_percentage += 3*time_step; if (key_cuu) c_move(me, vector(5.5*time_step, 0, 0), nullvector,GLIDE|IGNORE_YOU); if (key_pressed(72)) ent_animate (my, "run", run_percentage, ANM_CYCLE); run_percentage += 7*time_step; if (key_space&&munition>0) ent_animate (my, "schiessen", schiessen_percentage,ANM_CYCLE); schiessen_percentage += 20*time_step; if (key_space && key_cuu&&munition>0) ent_animate (my, "schiessen", schiessen_percentage,ANM_CYCLE); schiessen_percentage += 20*time_step; if (!key_any) ent_animate (my, "tourner_head", stand_percentage, ANM_CYCLE); stand_percentage += 1*time_step; if (!munition>0) ent_animate (my, "tourner_head", stand_percentage, ANM_CYCLE); stand_percentage += 1*time_step; wait (1); } }
function gun_mit() { while (1) { if (key_cul) my.pan += 5*time_step; ent_animate (my, "gehen", gehen_percentage, ANM_CYCLE); gehen_percentage += 3*time_step; if (key_cur) my.pan -= 5*time_step; ent_animate (my, "gehen", gehen_percentage, ANM_CYCLE); gehen_percentage += 3*time_step; if (key_cuu) c_move(me, vector(5.5*time_step, 0, 0), nullvector,GLIDE|IGNORE_YOU); if (key_pressed(72)) ent_animate (my, "run", rennen_percentage, ANM_CYCLE); rennen_percentage += 7*time_step; if (key_space&&munition>0) ent_animate (my, "schisen", schisen_percentage,ANM_CYCLE); schisen_percentage += 30*time_step; if (!key_any) ent_animate (my, "stand", stehen_percentage, ANM_CYCLE); stehen_percentage += 1*time_step; wait (1); } }
//////////////////////////////
PANEL* heat_pan = { window (120, 560, 60, 20, "heat_l.pcx", heat, 0); flags = VISIBLE; }
//////////////////////////////
BMAP* muni_bmp = "munition.bmp";
PANEL* first_pan = { pos_x = 0; pos_y = 0; layer = -0.5; bmap = muni_bmp; flags = OVERLAY | VISIBLE; }
//////////////////////////////
BMAP* uhr_pcx = "time.pcx";
PANEL* uhr_pan = { pos_x = 680; pos_y = 540; layer = -1; bmap = uhr_pcx; flags = OVERLAY | VISIBLE; }
//////////////////////////////
BMAP* leiste_pcx = "leiste.pcx";
PANEL* leiste_pan = { pos_x = 0; pos_y = 540; layer = -30; bmap = leiste_pcx; flags = OVERLAY | VISIBLE; }
//////////////////////////////
PANEL*pandigits = { digits(778, 572, 2, *, 1, sys_seconds); digits(758, 572, 2, *, 1, sys_minutes); digits(738, 572, 2, *, 1, sys_hours); digits(60, 10, 5, *, 1, munition); digits(20, 570, 5, *, 1, leben); flags = VISIBLE; }
//////////////////////////////
STRING* muni_str = "Munition =";
TEXT* greetings_txt = { pos_x = 4; pos_y = 10; string (muni_str); flags = VISIBLE; }
//////////////////////////////
STRING* heat_str = "Power :";
TEXT* heat_txt = { pos_x = 75; pos_y = 570; string (heat_str); flags = VISIBLE; }
//////////////////////////////
STRING* doppelpunkte_str = " : : ";
TEXT* doppelpunkt_txt = { pos_x = 740; pos_y = 572; string (doppelpunkte_str); flags = VISIBLE; }
//////////////////////////////
STRING* time_str = "The time";
TEXT* time_txt = { pos_x = 740; pos_y = 560; string (time_str); flags = VISIBLE; }
//////////////////////////////
STRING* leben_str = "Leben:";
TEXT* leben_txt = { pos_x = 4; pos_y = 570; string (leben_str); flags = VISIBLE; }
//////////////////////////////
action explosion() { my.ambient = 300; my.flags |= BRIGHT; while(1) { while (!key_space) wait (1); for (my.frame=0; my.frame<12; my.frame += 0.7 * time_step) wait (1); } } function main() { video_mode = 9; level_load ("starwars.wmb"); wait (2); my = ent_create("sturmtroper.mdl", vector(1, 200, -243), gehen_sturmtroper); ent_create("gun.mdl", vector(1, 200, -243), gun_mit); ent_create("explo+11.tga", vector(300,400,-243), explosion); camera.x = -180; camera.y = -138; camera.z = -202; camera.pan = 39; camera.tilt = -10; while(1) { camera.x = sturmtroper.x - 300; camera.y = sturmtroper.y; } wait (1); } und?
|
|
|
Re: Script Editor beendet sich sobald ich meinen script starte
[Re: Zanfty]
#274845
06/28/09 20:47
06/28/09 20:47
|
Joined: Aug 2007
Posts: 1,922 Schweiz
Widi
Serious User
|
Serious User
Joined: Aug 2007
Posts: 1,922
Schweiz
|
In deiner main function hast du die zeile camera.x = my.x - 300; durch camera.x = sturmtroper.x - 300; ersetzt. Aber in deinem code sehe ich nirgens dass du den Pointer sturmtroper setzt. Ersetze my = ent_create("sturmtroper.mdl", vector(1, 200, -243), gehen_sturmtroper); durch sturmtroper = ent_create("sturmtroper.mdl", vector(1, 200, -243), gehen_sturmtroper); gun = ent_create("gun.mdl", vector(1, 200, -243), gun_mit); So sind die Pointer sturmptoper und gun gesetzt und du kannst jetzt die camera setzen. Denke daran, jeden Pointer musst du setzen, bevor du auf ihn zugreifst! Eine andere Möglichkeit den Pointer zu setzen, ist in der action gehen_sturmtroper(). In jeder action zeigt der my Pointer auf die Entity, der diese action angehängt ist. Somit kannst du mit "sturmtroper = my;" den Pointer auch in der action setzen. Hoffe das hilft.
Hatte am Anfang auch noch meine Probleme mit Pointern, aber mit der Zeit lernt man auch das...
Edit: was für eine Fehlermeldung bekommst du denn? Falls du die Fehlermeldung nicht siehst, gehe im SED auf Options --> Preferences. Da sollte unter Engine in der zweiten Zeile NICHT -diag stehen. Falls doch lösche es und du siehst die Fehlermeldung beim Auftreten in einem Fenster.
Last edited by Widi; 06/28/09 20:56.
|
|
|
Re: Script Editor beendet sich sobald ich meinen script starte
[Re: Zanfty]
#275031
06/29/09 19:45
06/29/09 19:45
|
Joined: Aug 2007
Posts: 1,922 Schweiz
Widi
Serious User
|
Serious User
Joined: Aug 2007
Posts: 1,922
Schweiz
|
Du musst den Pointer ja nur einmal zuweisen, also VOR der while Schleife. Aber nur einmal zuweisen --> Entweder beim erzeugen der Entity :
sturmtroper = ent_create("sturmtroper.mdl", vector(1, 200, -243), gehen_sturmtroper);
oder in der Action der Entity:
sturmtroper = my;
Last edited by Widi; 06/29/09 19:46.
|
|
|
Re: Script Editor beendet sich sobald ich meinen script starte
[Re: Zanfty]
#275215
06/30/09 16:08
06/30/09 16:08
|
Joined: Jun 2009
Posts: 19
Zanfty
OP
Newbie
|
OP
Newbie
Joined: Jun 2009
Posts: 19
|
|
|
|
|