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 2 » Call of Duty 2 - Mapping » CoD2-Mapping-Hilfe » Teleporter per script einbauen » 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 Teleporter per script einbauen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
thelight
5-Minuten-Ei


Dabei seit: 12.02.2016
Beiträge: 14


Daumen hoch! Teleporter per script einbauen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo zusammen,

ich bräuchte einen einfachen skript um einen teleporter per script in einer map einzubauen.(Also ohne den radiant zu benutzen)

Ich habe soweit hier bisschen gesucht und habe folgendes gefunden:
Teleporter Guid

Leider finde ich das schon zu kompliziert für mich, könnte vlt jemand einen kompletten skript bereit stellen, so wie er es im Anhang in dem thread oben ist, aber eben mit allen bestandteilen, sprich position des triggers, radius des triggers, origin und ohne diese guid sache, sondern jeder der eben beim teleporter "F" drückt, wird teleportiert. Die Koordinaten kann ich natürlich selber setzen.

Ich würde es sehr schätzen, danke im vorraus.
thelight ist offline Beiträge von thelight suchen Nehmen Sie thelight in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


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

Hey,

ich bin etwas eingerostet, aber ich probiers nochmal smile

php:
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:
teleporter()
{
    startPos = ( );
    endPos = ( 100 );

    triggerRadius 100;
    triggerHeight 100;
    triggerPos startPos + ( triggerHeight );

    trigger spawn"trigger_radius" triggerPos triggerRadius triggerHeight );

    for( ; ; )
    {
        trigger waittill"trigger" player );

        if( !isDefinedplayer ) || !isPlayerplayer ) )
            continue;
        else if( player.sessionstate != "playing" || !isAliveplayer ) )
            continue;
        else if( !player useButtonPressed() )
            continue;

        player setOriginendPos );

        player iPrintLnBold"Teleport" );
    }
}


allerdings wird dir nicht angezeigt, bitte "F" drücken, das wär etwas mehr aufwand
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
thelight
5-Minuten-Ei


Dabei seit: 12.02.2016
Beiträge: 14


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 erstmal für deine Mühe. Irgendwie klappt es nicht, kann sein das ich etwas falsch gemacht habe. Der Skript funktioniert zwar im Developer 2, aber man wird nicht teleportiert.

php:
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:
teleporter()
{
    startPos = ( 128 224 , -84 ); //Start Position vom Telepoter, also gilt dies auch als die position des Triggers!?
    endPos = ( 564 , -68 824 );  //End Position vom Teleporter

    triggerRadius 48;
    triggerHeight 16;
    triggerPos startPos + ( triggerHeight ); //Was passiert hier genau? Durch das startPos wird ja die position des triggers bereits definiert, wozu ist das ( 0 , 0 , triggerHeight / 2 ); Die höhe ist ja auch schon vorher definiert.

    trigger spawn"trigger_radius" triggerPos triggerRadius triggerHeight );

    for( ; ; )
    {
        trigger waittill"trigger" player );

        if( !isDefinedplayer ) || !isPlayerplayer ) )
            continue;
        else if( player.sessionstate != "playing" || !isAliveplayer ) )
            continue;
        else if( !player useButtonPressed() )
            continue;

        player setOriginendPos );

        player iPrintLnBold"Teleport" );
    }
}



Bitte nochmal den Skript genauer erklären und evt. schreiben, wo was rein muss. Danke.
thelight ist offline Beiträge von thelight suchen Nehmen Sie thelight in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


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

Der trigger hat sein origin nicht in der Mitte, sondern am unteren Rand:

daher das - /2 um den Trigger in der Mitte zu positionieren.

Du musst natürlich die Funktion irgendwo aufrufen:, da es mapspezifisch ist, am besten ganz oben in der main() funktion deiner mapname.gsc:
php:
1:
2:
3:
4:
main()
{
    level thread teleporter();
}


Dann kannst du bei jedem Schritt ein iPrintLn() einfügen, um zu sehen, wo du bist, was funktioniert und was nicht:
php:
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:
main()
{
    level thread teleporter();
}

teleporter()
{
    iPrintLn"" );

    startPos = ( 128 224 , -84 ); //Start Position vom Telepoter, also gilt dies auch als die position des Triggers!?
    endPos = ( 564 , -68 824 );  //End Position vom Teleporter

    triggerRadius 48;
    triggerHeight 16;
    triggerPos startPos - ( triggerHeight ); //Was passiert hier genau? Durch das startPos wird ja die position des triggers bereits definiert, wozu ist das ( 0 , 0 , triggerHeight / 2 ); Die höhe ist ja auch schon vorher definiert.

    trigger spawn"trigger_radius" triggerPos triggerRadius triggerHeight );

    iPrintLn"" );

    for( ; ; )
    {
        trigger waittill"trigger" player );

        iPrintLn"getriggert" );

        if( !isDefinedplayer ) || !isPlayerplayer ) )
        {
            iPrintLn"continue: player is not a real player" );
            continue;
        }
        else if( player.sessionstate != "playing" || !isAliveplayer ) )
        {
            iPrintLn"continue: player is not playing" );
            continue;
        }
        else if( !player useButtonPressed() )
        {
            iPrintLn"continue: player not pressed F" );
            continue;
        }

        player setOriginendPos );

        player iPrintLnBold"Teleport" );
    }
}

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von serthy: 13.02.2016 14:21.

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
thelight
5-Minuten-Ei


Dabei seit: 12.02.2016
Beiträge: 14


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

Vielen dank! Jetzt funktionierts, lag wohl daran das ich net f gedrückt habe? ka xD
thelight ist offline Beiträge von thelight suchen Nehmen Sie thelight in Ihre Freundesliste auf
thelight
5-Minuten-Ei


Dabei seit: 12.02.2016
Beiträge: 14


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

Was müsste geändert werden damit das nicht als use touch funktioniert, sondern als multiple trigger, also man berührt den trigger und wird teleportiert?

Danke.
thelight ist offline Beiträge von thelight suchen Nehmen Sie thelight in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


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

php:
1:
2:
3:
4:
5:
else if( !player useButtonPressed() )
{
    iPrintLn"continue: player not pressed F" );
        continue;
}


Das löschen/auskommentieren

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von serthy: 11.03.2016 20:26.

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
thelight
5-Minuten-Ei


Dabei seit: 12.02.2016
Beiträge: 14


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

Vielen dank serthy!
thelight ist offline Beiträge von thelight suchen Nehmen Sie thelight in Ihre Freundesliste auf
thelight
5-Minuten-Ei


Dabei seit: 12.02.2016
Beiträge: 14


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

Hallo,

ich hätte nochmal eine Frage hierzu. Das iprintinbold, was müsste gemacht werden damit es das z.B. 1 oder 2 mal zeigt, wenn man auf dem trigger ist. Zumindestens so, dass man nun weiß, dass man F drücken kann.

Wenn man das so wie im skript mit dem iprint macht, dann spamt es das fenster ohne ende.

Da das Hand Symbol wohl zu viel arbeitet braucht, würde ich mich auch über die Möglichkeit mit einem Saybold freuen.

Danke falls jemand helfen kann.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von thelight: 31.05.2016 17:47.

thelight ist offline Beiträge von thelight suchen Nehmen Sie thelight in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


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

Probier mal das:

php:
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:
main()
{
    level thread teleporter();
}

teleporter()
{
    iPrintLn"" );

    startPos = ( 128 224 , -84 ); //Start Position vom Telepoter, also gilt dies auch als die position des Triggers!?
    endPos = ( 564 , -68 824 );  //End Position vom Teleporter

    triggerRadius 48;
    triggerHeight 16;
    triggerPos startPos - ( triggerHeight ); //Was passiert hier genau? Durch das startPos wird ja die position des triggers bereits definiert, wozu ist das ( 0 , 0 , triggerHeight / 2 ); Die höhe ist ja auch schon vorher definiert.

    trigger spawn"trigger_radius" triggerPos triggerRadius triggerHeight );

    iPrintLn"" );

    for( ; ; )
    {
        trigger waittill"trigger" player );

        iPrintLn"getriggert" );

        if( !isDefinedplayer ) || !isPlayerplayer ) )
        {
            iPrintLn"continue: player is not a real player" );
            continue;
        }
        else if( player.sessionstate != "playing" || !isAliveplayer ) )
        {
            iPrintLn"continue: player is not playing" );
            continue;
        }

        monitorPlayerplayer trigger );

        if( !player useButtonPressed() )
        {
            iPrintLn"continue: player not pressed F" );
            continue;
        }

        player setOriginendPos );

        player iPrintLnBold"Teleport" );
    }
}

monitorPlayerplayer trigger )
{
    player endon"disconnect" );

    if( isDefinedplayer.touching_trigger ) )
        return;

    player iPrintLn"Drücke [F]" );

    player.touching_trigger trigger;

    while( true )
    {
        if( player.sessionstate != "playing" || !isAliveplayer ) )
        {
            break;
        }
        else if( !player isTouchingtrigger ) )
        {
            break;
        }

        wait0.05 );
    }

    player.touching_trigger undefined;
}
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
thelight
5-Minuten-Ei


Dabei seit: 12.02.2016
Beiträge: 14


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

Hey,

hab es so probiert, es zeigt das saybold an, wenn man auf dem trigger ist, jedoch funktioneirt der teleporter irgendwie unregelmäßig, bzw. selten auf glück. Des weiteren, wenn ich auf dem trigger bin und z.b. wieder weg gehe, spamt es plötzlich den saybold.
thelight ist offline Beiträge von thelight suchen Nehmen Sie thelight in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


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 habe leider Win10 installiert und CoD2 startet nicht .. :/ also geght nur eine Ferndiagnose mal wieder ^^

Schreib mal in Zeile 38 ein thread davor:

php:
1:
thread monitorPlayerplayer trigger );


das hatte ich übersehen, ansonsten muss ich noch einmal genauer nachsehen grosses Grinsen
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
thelight
5-Minuten-Ei


Dabei seit: 12.02.2016
Beiträge: 14


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

Hat funktioniert, vielen dank!

Zusätzlich sollte man noch das wait( 0.05 ); zu wait( 2 ); oder so ändern, dann spamt es nicht, wenn man nicht f drückt und weg vom trigger geht.
thelight ist offline Beiträge von thelight suchen Nehmen Sie thelight in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


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

Mhhh, scheint wohl doch nicht so zu klappen.. :/
Der Sinn der neuen Funktion war es eigentlich, das dem Spieler nur einmal beim betreten des Triggers was angezeigt werden soll, die 0.05 waren eigentlich schon so eingeplant
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
thelight
5-Minuten-Ei


Dabei seit: 12.02.2016
Beiträge: 14


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

Verstehe. Dennoch ist es nun völlig ok, vielen dank! Augenzwinkern
thelight ist offline Beiträge von thelight suchen Nehmen Sie thelight in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Opferlamm-Clan Board » Call of Duty 2 » Call of Duty 2 - Mapping » CoD2-Mapping-Hilfe » Teleporter per script einbauen

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv