skript by armagetron?

Don't feel confident with your English? This is the place to ask in your native tongue. Spanish, German... Not sure what else we speak here, but give it a go.
Post Reply
User avatar
ChrisGW
On Lightcycle Grid
Posts: 25
Joined: Sat May 16, 2009 11:47 am

skript by armagetron?

Post by ChrisGW »

(german)
Hi,

ich wollte fragen, wie man einen skript bei armagetron schreibt, sprich welche "Sprache" benutzt armagetron. (sowas wie pascal, java ...)
und ob mir jemand ne seite zeigen kann, wo man die einfachsten sachen schnell lernen kann.

Ich hatte vor, dass nach einer zeit eine center_message erscheint und nach einer zeit eine death zone erscheint, nach einer zeit der rubber sich verändert ... sowas halt.
Darauf komm ich, da ich sowas ähnliches bei Flower Power Sumo gesehen habe. :)

ChrisGW
User avatar
Z-Man
God & Project Admin
Posts: 11585
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: skript by armagetron?

Post by Z-Man »

Richtig gut funktionieren Skripte noch nicht, wir haben sie noch nicht integriert. Flower Power benutzt einen Hack: die ct+sty-Version. Die kann man ueber externe Kommandos steuern und sie gibt erweiterte Statusmeldungen ins log. Mit einer beliebigen Scriptsprache kann man da Sachen basteln. Frag mich aber nicht, wie genau :)
User avatar
ChrisGW
On Lightcycle Grid
Posts: 25
Joined: Sat May 16, 2009 11:47 am

Re: skript by armagetron?

Post by ChrisGW »

Ok, den Hack ct+stv haben wir glaub ich auch auf einem server, also müsste es doch machbar sein :D?

Ich wollte, dass nach einer zeit eine center_message erscheint und nach einer bestimmten zeit der cycle_rubber sich verändert.
Kann mir jemand helfen, wie ich das schaffe?
User avatar
ed
Match Winner
Posts: 613
Joined: Mon Feb 13, 2006 12:34 pm
Location: UK

Re: skript by armagetron?

Post by ed »

Werfen Sie einen Blick auf diese Seite finden Sie ein Beispiel dafür, wie Sie es erreichen.

Wenn Sie im Flower Power Sumo Server suchen, wird das Skript hier.

Viel Glück und viel Spaß! :D
User avatar
ChrisGW
On Lightcycle Grid
Posts: 25
Joined: Sat May 16, 2009 11:47 am

Re: skript by armagetron?

Post by ChrisGW »

ok ich hab mal etwas ausprobiert.
Würde das klappen?:
Also die zeit soll runterlaufen

Code: Select all

#!/usr/bin/php
<?php
$time=60;

print ("CENTER_MESSAGE 0xdd0000Bomb 0xffff7fhas been planted! 0x00ff00-60- 0xffff7fseconds left!\n");

while (1)  {
	if ( $time > 40 ) {
    	$time--;
	}
	else {
	print ("CENTER_MESSAGE 0x66ff00-40-\n");
	}
	if ( $time > 30 ) {
    	$time--;
	}
	else {
	print ("CENTER_MESSAGE 0xaaff00-30-\n");
	}
	if ( $time > 20 ) {
    	$time--;
	}
	else {
	print ("CENTER_MESSAGE 0xffff00-20-\n");
	}
	if ( $time > 10 ) {
    	$time--;
	}
	else {
	print ("CENTER_MESSAGE 0xffaa00-10\n");
	}
	if ( $time > 5 ) {
    	$time--;
	}
	else {
	print ("CENTER_MESSAGE 0xff6600-5-\n");
	}
	if ( $time > 3 ) {
    	$time--;
	}
	else {
	print ("CENTER_MESSAGE 0xff3300---3---\n");
	}
	if ( $time > 2 ) {
    	$time--;
	}
	else {
	print ("CENTER_MESSAGE 0xff0000--2--\n");
	}
	if ( $time > 1 ) {
    	$time--;
	}
	else {
	print ("CENTER_MESSAGE 0xdd0000-1-\n");
	}
	if ( $time > 0 ) {
    	$time--;
	}
	else {
	print ("CENTER_MESSAGE 0xbb0000-0-\n");
	}
	if ( $time = 0 ) {
    	print ("CENTER_MESSAGE 0xff0000BBBOOOOOOOOOOMMM!\n");
	print ("CYCLE_RUBBER -1");
	}
	else {
	print ("CYCLE_RUBBER 5\n");
	}
?>
Sind da irgendwelche fehler, oder würde das so klappen :D?
User avatar
ed
Match Winner
Posts: 613
Joined: Mon Feb 13, 2006 12:34 pm
Location: UK

Re: skript by armagetron?

Post by ed »

Ich glaube, ich sehen, wo Sie herkommen.
So etwas sollte es tun. Vorsicht Es ist völlig ungetestet.

Code: Select all

#!/usr/bin/php
<?php
    
// $bomb_start_time ist die Zeit in Sekunden, nachdem die Runde beginnt, dass wir die Bombe anpflanzen wollen
$bomb_start_time = 120;   
// $bomb_time ist die Countdown-Zeit in Sekunden der Bombe
$bomb_time = 60;
    
while (1)  {
    $line = rtrim(fgets(STDIN, 1024));
	if (preg_match("/^ROUND_COMMENCING /", $line)){
        // 	Eine neue Runde beginnt, wollen wir die nächste Runde vorzubereiten.
        $bomb_alert = false; //	Start der neuen Runde, die Bombe zu deaktivieren.
        print ("CYCLE_RUBBER 5\n");
    } else if ( preg_match("/^GAME_TIME/", $line) ){ 
        // Check ladderlog.txt für alle Zeilen, die GAME_TIME
        $keywords = preg_split("/ /", $line);
        $game_time = $keywords[1];
              
        if ( $game_time == $bomb_start_time ){
            print ("CENTER_MESSAGE 0xdd0000Bomb 0xffff7fhas been planted! 0x00ff00-" . $bomb_time . "- 0xffff7fseconds left!\n");
            $bomb_alert = true; // Bombe wurde aktiviert, startet Countdown!
        }
        
        if ( $bomb_alert ){   // Die Bombe Countdown läuft, mach was während der Zeit Veränderungen
            $bomb_countdown = $bomb_time + $game_time - $bomb_start_time; 
            // Die Anzahl der verbleibenden Sekunden auf die Bombe Timer
            switch ( $bomb_countdown ){
                case "40":
                    print ("CENTER_MESSAGE 0x66ff00-40-\n");
                break;
                case "30":
                    print ("CENTER_MESSAGE 0xaaff00-30-\n");
                break;        
                case "20":
                    print ("CENTER_MESSAGE 0xffff00-20-\n");
                break;  
                case "10":
                    print ("CENTER_MESSAGE 0xffaa00-10\n");
                break; 
                case "5":
                    print ("CENTER_MESSAGE 0xff6600-5-\n");
                break; 
                case "3":
                    print ("CENTER_MESSAGE 0xff3300---3---\n");
                break; 
                case "2":
                    print ("CENTER_MESSAGE 0xff0000--2--\n");
                break; 
                case "1":
                    print ("CENTER_MESSAGE 0xdd0000-1-\n");
                break; 
                case "0":
                    print ("CENTER_MESSAGE 0xff0000BBBOOOOOOOOOOMMM!\n");
                    print ("CYCLE_RUBBER -1");
                break; 
            }
        }
    }
}
?>
User avatar
theroze
Match Winner
Posts: 596
Joined: Mon Aug 10, 2009 7:30 am
Location: 47 72 69 64

Re: skript by armagetron?

Post by theroze »

lol ed xD

kann man sich auch nicht einfach ein eigenes einfaches script machen wie cycle_rubber 5 22 (22 bedeutet die zeit nach dem runden beginn, also nach 22 sekunden kommt wird 5 rubber eingestellt.)
apparition wrote:You being able to kill so many players that quickly and efficiently is evidence that the community skill level must be dropping... Sad :/
Reigning champion of: Sir-spam-a-lot 2011
User avatar
ChrisGW
On Lightcycle Grid
Posts: 25
Joined: Sat May 16, 2009 11:47 am

Re: skript by armagetron?

Post by ChrisGW »

theroze wrote:lol ed xD
kann man sich auch nicht einfach ein eigenes einfaches script machen wie cycle_rubber 5 22 (22 bedeutet die zeit nach dem runden beginn, also nach 22 sekunden kommt wird 5 rubber eingestellt.)
Nein roze, dass ist programmier sprache und das ist ein EINFACHER Skript :D
ed wrote:Ich glaube, ich sehen, wo Sie herkommen.
So etwas sollte es tun. Vorsicht Es ist völlig ungetestet.
Ja, ich bin ein noob :)

Wie starte ich die bombe?

Code: Select all

$bomb_alert = false; //   Start der neuen Runde, die Bombe zu deaktivieren.
how i set $bomb_alert=true (active)? and how $bomb_alert=false (desible?);
What command i need to write in armagetron game?

Danke sehr, ich werde es ausversuchen.
User avatar
ed
Match Winner
Posts: 613
Joined: Mon Feb 13, 2006 12:34 pm
Location: UK

Re: skript by armagetron?

Post by ed »

Einige Erläuterungen was das Skript macht
Das Skript wartet eine bestimmte Zeit in die Runde, bevor Sie sich eine Bombe.
Die Bombe wird Count-down für eine bestimmte Anzahl von Sekunden, bevor Sie die Einstellungen ändern "CYCLE_RUBBER -1", sofort zu töten alle noch am Leben.
Zu Beginn jeder Runde alle Einstellungen werden auf ein normales Maß zurückgegangen.
Wie es funktioniert ....
Arma schreibt ladderlog.txt, die wiederum in diesem Skript zugeführt.
Wenn ROUND_COMMENCING in der Datei gelesen wird, "CYCLE_RUBBER 5" ist es, arma, so Gummi ist jetzt wieder normal und "$bomb_alert = false" in das Skript, so dass keine Bombe ist in dem Skript aktiv zugeführt.
Variable $bomb_start_time wird durch das Script, nachdem so viele Sekunden hat die Bombe Countdown beginnt übergeben.
Variable $bomb_time ist die Anzahl der Sekunden die Bombe wird Countdown, bevor er explodiert.
Also, mit den Standardeinstellungen, $bomb_start_time = $ 120 und $bomb_time = 60 bedeutet, dass nach 120 Sekunden in der Runde der Countdown beginnt, 60 Sekunden später explodiert.
Es gibt keine Möglichkeit, irgendeinen Teil dieses Skript innerhalb des Spiels zu ändern. , Was getan werden könnte, aber es ist nicht hier.

Ich würde empfehlen, einen Server und beobachten ladderlog.txt mit dem Befehl "tail-f ladderlog.txt". Dies wird Ihnen helfen zu verstehen, was vor sich geht und wie die Dinge funktionieren.
Post Reply