Opferlamm-Clan Board
www.opferlamm-clan.de
Verantwortlich für diese bösen Machenschaften: siehe Impressum

Registrierung Kalender Mitgliederliste Suche Häufig gestellte Fragen Zur Startseite

Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Mapping » CoD4-Mapping-Hilfe » Scripten = geschwindigkeit » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Scripten = geschwindigkeit
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Mapicted
Steuerzahler


Dabei seit: 10.04.2015
Beiträge: 200


Scripten = geschwindigkeit Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

moin,
Für ein Script bräuchte ich den befehl womit man die geschwindigkeit eines zu bewegneden Objektes festlegen kann.

Hiermit kann man ja nur die geschindikeit mit Strecke/Sekunden festlegen.
xxx moveTo((-200, 1480, 90),20,2,2);

Aber da ich was am scripten bin was während der bewegung die richtung änderen kann, ist die Bewegung je nach strecke unterschiedlich schnell.

Gibt es sowas in der Art wie das?:
xxx moveTo((-200, 1480, 90) mit einer geschwindikeit von 5we/sec );

__________________
Fresh Beginnings!
Mapicted ist offline Beiträge von Mapicted suchen Nehmen Sie Mapicted in Ihre Freundesliste auf
OLD MAN WITH GUN
... sehr viel alleine


images/avatars/avatar-798.gif


Dabei seit: 01.05.2006
Beiträge: 2.305


RE: Scripten = geschwindigkeit Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hmm, ich weiß jetzt nicht exakt ob meine Überlegungen stimmen, aber so solltest du es hinbekommen.

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
start = ent.origin; //aktuelle Position des Objektes
dest = (x, y, z); // Zielpunkt des Objektes
dist = distance(start, dest); // Entfernung zwischen Start- und Zielpunkt
speed = (1 / 5) * dist; // Zeit für Enfernung bei 5 WE / Sekunde

ent moveto(dest, speed); // Objekt zur neuen Position bewegen



Nur musst du jetzt beachten, das du keine feste Zeit für Beschleunigung und Abbremsen mehr angeben kannst, das die Gesamtzeit "speed" kleiner sein kann). Da kannst du dann nur noch einen prozentualen Wert nehmen, z.B
ent move(dest, speed, (speed / 10), (speed / 10));

__________________

Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von OLD MAN WITH GUN: 12.05.2008 16:47.

OLD MAN WITH GUN ist offline Beiträge von OLD MAN WITH GUN suchen Nehmen Sie OLD MAN WITH GUN in Ihre Freundesliste auf
Mapicted
Steuerzahler


Dabei seit: 10.04.2015
Beiträge: 200


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Danke, hat funktioniert.
Plattform bewegt sich jetzt per schalter hin und her, das funktioniert auch alles


Jetzt wollte ich noch einen dritten schalter einbauen womit ich die Plattforum stoppen kann.

Habs mal mit einigen Befehlen versucht aber bei allen der selbe bad syntax error.


Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
				stop()
{
cat1 = getent ("cat1","targetname"); 
trig_cat1_stop = getent ("trig_cat1_stop","targetname"); 		
while (1)
{
trig_cat1_stop waittill ("trigger");

cat1 	movedone;
//cat1 	donemove;
//cat1 	moveend;
//cat1 	endmove;
//cat1	endon;

}
}



__________________
Fresh Beginnings!

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Mapicted: 12.05.2008 20:13.

Mapicted ist offline Beiträge von Mapicted suchen Nehmen Sie Mapicted in Ihre Freundesliste auf
OLD MAN WITH GUN
... sehr viel alleine


images/avatars/avatar-798.gif


Dabei seit: 01.05.2006
Beiträge: 2.305


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich wüsste jetzt nicht, das man nicht ohne Trick einen einmal gestarteten move Befehl stoppen kann.
Der Trick wäre, dem entity einen weiteren move Befehl geben. Dieser würde ihm als Ziel seine eigene aktuelle Position geben.

Im Sinne:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
stop(ent) // das Entity (Plattform) der Funktion mit übergeben
{
  trig_stop = getent ("trig_stop","targetname");
  while(1)
  {
    trig_stop waittill("trigger");
    ent moveto(ent.origin, 0.1);
    wait 0.1;
  }
}


Das sollte eigentlich funktionieren.

__________________

Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.

OLD MAN WITH GUN ist offline Beiträge von OLD MAN WITH GUN suchen Nehmen Sie OLD MAN WITH GUN in Ihre Freundesliste auf
Mapicted
Steuerzahler


Dabei seit: 10.04.2015
Beiträge: 200


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

wow, nicht schlecht das funktioniert Grins 1

Also jetzt funktioniert alles, bis auf einen kleinen Fehler.

Wenn die Plattform an einem äußerem Endpunkt steht und man drückt den Schalten womit er sich normal in diese richtung bewegen soll kommt die Fehlermelung:


Hier mal das ganze Script:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
main()

{
thread link();
thread cat1_move_1();
thread cat1_move_2();
stop();
}



				link()
{
trig_cat1_1 = getent ("trig_cat1_1","targetname"); 		
trig_cat1_2 = getent ("trig_cat1_2","targetname"); 
trig_cat1_stop = getent ("trig_cat1_stop","targetname");
trig_cat1_1 enablelinkto(); 
trig_cat1_2 enablelinkto(); 
trig_cat1_stop enablelinkto(); 
}



				cat1_move_1()
{
cat1 = getent ("cat1","targetname"); 			// Plattform
trig_cat1_1 = getent ("trig_cat1_1","targetname"); 		// richtung -200, 1480, 90
trig_cat1_2 = getent ("trig_cat1_2","targetname");  		// richtung 1072, 1480, 90
trig_cat1_stop = getent ("trig_cat1_stop","targetname");
//mg_1 = getent ("mg_1","targetname");
while (1)
{
trig_cat1_2 waittill ("trigger");
trig_cat1_1 linkto(cat1);
trig_cat1_2 linkto(cat1);
trig_cat1_stop linkto(cat1);
//mg_1 linkto (cat1);

start = cat1.origin; //aktuelle Position des Objektes
dest = (1072, 1480, 90); // Zielpunkt des Objektes
dist = distance(start, dest); // Entfernung zwischen Start- und Zielpunkt
speed = (1 / 35) * dist; // Sekund / WE

cat1 moveto(dest, speed); // Objekt zur neuen Position bewegen
}
}



				cat1_move_2()
{
cat1 = getent ("cat1","targetname"); 
trig_cat1_1 = getent ("trig_cat1_1","targetname"); 		
trig_cat1_2 = getent ("trig_cat1_2","targetname");  		
trig_cat1_stop = getent ("trig_cat1_stop","targetname");
//mg_1 = getent ("mg_1","targetname");
while (1)
{
trig_cat1_1 waittill ("trigger");
trig_cat1_1 linkto(cat1);
trig_cat1_2 linkto(cat1);
trig_cat1_stop linkto(cat1);
//mg_1 linkto (cat1);

start = cat1.origin; //aktuelle Position des Objektes
dest = (-200, 1480, 90); // Zielpunkt des Objektes
dist = distance(start, dest); // Entfernung zwischen Start- und Zielpunkt
speed = (1 / 35) * dist; // Sekund / WE

cat1 moveto(dest, speed); // Objekt zur neuen Position bewegen

}
}

stop()
{
cat1 = getent ("cat1","targetname"); 
trig_cat1_stop = getent ("trig_cat1_stop","targetname");
  while(1)
  {
    trig_cat1_stop waittill("trigger");
    cat1 moveto(cat1.origin, 0.1);
    wait 0.1;
  }
}




Ich weiss nicht wie ich den entsprechenden Trigger deaktivieren kann sobald die Plattform an einem der Edpunkte angelangt ist oder wie ich sonst den Fehler beheben kann.

__________________
Fresh Beginnings!

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Mapicted: 13.05.2008 10:49.

Mapicted ist offline Beiträge von Mapicted suchen Nehmen Sie Mapicted in Ihre Freundesliste auf
OLD MAN WITH GUN
... sehr viel alleine


images/avatars/avatar-798.gif


Dabei seit: 01.05.2006
Beiträge: 2.305


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hab deinen script mal ein "wenig" umbeschrieben. Ich hoffe mal, es ist alles einigermaßen zu verstehen (manches ist für einige nicht direkt nachzuvollziehen).

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
main()
{
  level.cat1_stand 	= true;
  cat1_start = (-200, 1480, 90);
  cat1_dest = (1072, 1480, 90);
  cat1 = getent ("cat1","targetname"); 
  trig_cat1_1 = getent ("trig_cat1_1","targetname"); 		
  trig_cat1_2 = getent ("trig_cat1_2","targetname"); 
  trig_cat1_stop = getent ("trig_cat1_stop","targetname");
  trig_cat1_1 enablelinkto(); 
  trig_cat1_2 enablelinkto(); 
  trig_cat1_stop enablelinkto();
  trig_cat1_1 linkto(cat1);
  trig_cat1_2 linkto(cat1);
  trig_cat1_stop linkto(cat1);

  trig_cat1_1 thread cat1_move_2(cat1, cat1_start, cat1_dest);
  trig_cat1_2 thread cat1_move_1(cat1, cat1_start, cat1_dest);
  trig_cat1_stop thread stop(cat1);
}


cat1_move_1(cat1,cat1_start, cat1_dest)
{
  while (1)
  {
    self waittill ("trigger");
    cat1 move_me(cat1_start, cat1_dest);
  }
}

cat1_move_2(cat1, cat1_start, cat1_dest)
{
  while(1)
  {
    self waittill("trigger");
    cat1 move_me(cat1_dest, cat1_start);
  }
}

move_me(cat1_start, cat1_dest)
{
  if(level.cat1_stand && (self.origin != cat1_dest))
  {	
    dist = distance(self.origin, cat1_dest);
    speed = (1 / 35) * dist;
    level.cat1_stand = false;
    self moveto(cat1_dest, speed);
    self waittill("movedone");
    level.cat1_stand = true;
  }
  wait 0.1;
}

stop(cat1)
{
  while(1)
  {
    self waittill("trigger");
    if (!level.cat1_stand)
      cat1 moveto(cat1.origin, 0.1);
    wait 0.1;
  }
}


Wenn die Plattform jetzt an einem Ende angekommen ist und du betätigst noch einmal den schalter für die Fahrt in diese Richtung, passiert nichts mehr. Ich habe es auch so gemacht, das du immer nur über den Schalter "stop" die Richtung ändern kannst. Die Richtungsschalter sind während der Bewegung inaktiv.

__________________

Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von OLD MAN WITH GUN: 13.05.2008 17:50.

OLD MAN WITH GUN ist offline Beiträge von OLD MAN WITH GUN suchen Nehmen Sie OLD MAN WITH GUN in Ihre Freundesliste auf
Mapicted
Steuerzahler


Dabei seit: 10.04.2015
Beiträge: 200


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

danke, funktioniert einwandfrei so.

__________________
Fresh Beginnings!
Mapicted ist offline Beiträge von Mapicted suchen Nehmen Sie Mapicted in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Mapping » CoD4-Mapping-Hilfe » Scripten = geschwindigkeit

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv