Spawn skript und artillery message

Alles rund um das scripten und Server aufsetzen
Antworten
Krumenuke
Mod-Schreck
Mod-Schreck
Beiträge: 310
Registriert: Di 2. Sep 2003, 12:30
Wohnort: Bayern
Kontaktdaten:

Spawn skript und artillery message

Beitrag von Krumenuke »

hi, hab mich in dne letzten paar tagen metwas mti scripting beschäftigt und bin auf 2 probleme gestossen:

1) hätte ich gernd as jedes mal wenn ich ne artillery oder einen airstriker herrufe diese message an meine TEammember geschickt wird:

vsay_team fireinthehole; say_team ^0[^1Deploting Artillery Support!^0]

also praktisch das er sagt "fire in the hole" und das der text danach dann im chat bereich steht. was dabeid a sproblem is, ich weiss ned wie ichd es damit koppeln kannd as das nur gesendet wird wenn ich auch wirklich ne artillery bestelle oder nen airstrike werfe ...

2) ich hab mir da so ein schönes spawnskript gebastelt, funktioniert auch genau nach meinen vorstellungen allerdings wollte ichd as wenn ich eine klasse ausgewählt habe, das dann auch wieder im teamchat erscheint als was ich als nächstes spawne ...

hier das skript, evtl sieht ja wer den fehler ...

//mein Spawn-Skript

set engi vstr engi1
set engi1 "set engi vstr engi2; echo "^1Engi_MP"; set setclass "class e 1; say_team "next spawn: ^1Engineer with a MP/Thompson"; vstr recycle""
set engi2 "set engi vstr engi1; echo "^1Engi_Rifle"; set setclass "class e 2; say_team "next spawn: ^1Engineer with a Rifle"; vstr recycle""

set fieldop "echo "^1Field Op"; set setclass "class f 1; say_team "next spawn: ^1Field Op"; vstr recycle""

set soldier vstr soldier1
set soldier1 "set soldier vstr soldier2; echo "^1Panzerfaust"; set setclass "class s 4; say_team "next spawn: ^1Soldier with a Panzerfaust"; vstr recycle""
set soldier2 "set soldier vstr soldier3; echo "^1MG42"; set setclass "class s 2; say_team "next spawn: ^1Soldier with a MG42"; vstr recycle""
set soldier3 "set soldier vstr soldier4; echo "^1Flamethrower"; set setclass "class s 3; say_team "next spawn: ^1Soldier with a Flamethrower"; vstr recycle""
set soldier4 "set soldier vstr soldier1; echo "^1Mortar"; set setclass "class s 5; say_team "next spawn: ^1Soldier with a Mortar"; vstr recycle""

set medic "echo "^1Medic"; set setclass "class m 1; say_team "next Spawn: ^1Medic"; vstr recycle""

set covop vstr covop1
set covop1 "set covop vstr covop2; echo "^1CovOp K43"; set setclass "class c 3; say_team "next spawn: ^1 Covert Op with a K43/Garand"; vstr recycle""
set covop2 "set covop vstr covop3; echo "^1CovOp Sten"; set setclass "class c 1; say_team "next spawn: ^1Covert Op with a Sten"; vstr recycle""
set covop3 "set covop vstr covop1; echo "^1CovOp FG42"; set setclass "class c 2; say_team "next spawn: ^1 Cover Op with a FG42"; vstr recycle""

set recycle "set engi vstr engi1; set covop vstr covop1; set soldier vstr soldier1; set setclass "echo ^8Please select class first!""

set setclass "echo ^8Please select class first!"


bind F5 "vstr soldier"
bind F6 "vstr medic"
bind F7 "vstr engi"
bind F8 "vstr fieldop"
bind F9 "vstr covop"
bind F10 "vstr setclass"
Bild

Bild
Benutzeravatar
WoodSTokk
Helpdesk
Helpdesk
Beiträge: 2634
Registriert: Fr 6. Dez 2002, 03:09
Wohnort: Wien/Österreich/Europa/Erde
Alter: 53

Beitrag von WoodSTokk »

Tja, Krumenuke ... die Scriptspache kennt leider keinen IF-Befehl.
Das Script kann nicht feststellen ob der AS/FFE nun ausgeführt wird oder nicht.
Du kannst nur die Meldung ans Team auf eine eigene Taste legen und die drückst du dann wenn der AS/FFE positiv ist.

In deinem Spawn-Script hast du in jeder Zeile zuviele Anführungszeichen drin.
Jedes Anführungszeichen ist ein Token, also eine Flagg die anzeigt wo das Script anfängt und wo es endet.

Ich habe mir erlaubt das Script zu ändern, habe es aber nicht getestet:

Code: Alles auswählen

set engi vstr engi1
set engi1 "set engi vstr engi2; set setclass vstr class-e1; echo ^1Engi_MP"
set engi2 "set engi vstr engi1; set setclass vstr class-e2; echo ^1Engi_Rifle"
set fieldop "set setclass vstr class-f1; echo ^1Field Op"
set soldier vstr soldier1
set soldier1 "set soldier vstr soldier2; set setclass vstr class-s2; echo ^1MG42"
set soldier2 "set soldier vstr soldier3; set setclass vstr class-s3; echo "^1Flamethrower"
set soldier3 "set soldier vstr soldier4; set setclass vstr class-s4; echo ^1Panzerfaust"
set soldier4 "set soldier vstr soldier1; set setclass vstr class-s5; echo "^1Mortar"
set medic "set setclass vstr class-m1; echo ^1Medic"
set covop vstr covop1 
set covop1 "set covop vstr covop2; set setclass vstr class-c1; echo ^1CovOp Sten"
set covop2 "set covop vstr covop3; set setclass vstr class-c2; echo ^1CovOp FG42"
set covop3 "set covop vstr covop1; set setclass vstr class-c3; echo ^1CovOp K43"

set class-e1 "class e 1; say_team next spawn: ^1Engineer with a MP/Thompson; vstr recycle"
set class-e2 "class e 2; say_team next spawn: ^1Engineer with a Rifle; vstr recycle"
set class-f1 "class f 1; say_team next spawn: ^1Field Op; vstr recycle"
set class-s2 "class s 2; say_team next spawn: ^1Soldier with a MG42; vstr recycle"
set class-s3 "class s 3; say_team next spawn: ^1Soldier with a Flamethrower; vstr recycle"
set class-s4 "class s 4; say_team next spawn: ^1Soldier with a Panzerfaust; vstr recycle"
set class-s5 "class s 5; say_team next spawn: ^1Soldier with a Mortar; vstr recycle"
set class-m1 "class m 1; say_team next Spawn: ^1Medic; vstr recycle""
set class-c1 "class c 1; say_team next spawn: ^1Covert Op with a Sten; vstr recycle"
set class-c2 "class c 2; say_team next spawn: ^1 Cover Op with a FG42; vstr recycle"
set class-c3 "class c 3; say_team next spawn: ^1 Covert Op with a K43/Garand; vstr recycle"

set recycle "set engi vstr engi1; set covop vstr covop1; set soldier vstr soldier1; set setclass echo ^8Please select class first!"
set setclass "echo ^8Please select class first!"

bind F5 "vstr soldier"
bind F6 "vstr medic"
bind F7 "vstr engi"
bind F8 "vstr fieldop"
bind F9 "vstr covop"
bind F10 "vstr setclass"
mfG WoodSTokk
Du scheisst es nicht zu wetzen
Testserver: @peStable (95.129.206.243:27960)
Krumenuke
Mod-Schreck
Mod-Schreck
Beiträge: 310
Registriert: Di 2. Sep 2003, 12:30
Wohnort: Bayern
Kontaktdaten:

Beitrag von Krumenuke »

ah, nur das ich deine änderung verstehe, du ahst praktisch meine zu lange befehlskette dadurch verbessert das du einige befehle in einem anderen befehl untergebracht hast wodurch die kette ncih mehr zu lang is?!

seh ich das richtig?


zum artillery skript nochmal, ich benutze dieses "one button arty" skript:

set arty1 "+zoom"
set arty2 "+attack; -attack; wait 10; -zoom; vsay_team fireinthehole; say_team ^0[^1Deploting Artillery Support!^0]"
bind h "+vstr arty1 arty2"

funktioniert wunderprächtig, problem is nur das wenn ich "h" drücke, immer das fire in the hole und das "deploting artillery support" kommt, auch wenn ich im chatfenster oder in der console bin, kann man das ändern?
Bild

Bild
Benutzeravatar
WoodSTokk
Helpdesk
Helpdesk
Beiträge: 2634
Registriert: Fr 6. Dez 2002, 03:09
Wohnort: Wien/Österreich/Europa/Erde
Alter: 53

Beitrag von WoodSTokk »

Ooops, da hast du einen schönen Bug aufgedeckt :shock:
Eigendlich sollte wenn die Console oder das Chatfenster offen ist, kein Binding aktiv sein.
Habs aber getestet und es geht wirklich. Mir viel das nie auf weil ich alle 'vsay' und 'vsay_team' auf dem Numberblock liegen habe.

Zu deinem Class-Script.
In deinen langen Zeilen versuchst du auf eine Variable ('setclass') eine Befehls-Kette zu legen. Die Kette ist mit Semikolon (';') richtig formatiert, aber der 'set'-Befehl der die Zeile einleitet sieht das ebenfalls und nimmt an, daß das Semikolon für ihn ist.
Um solche Zeilen zu realisieren, müsste man die Semikolon escapen. Ein Escape-Zeichen ist ein sogenanntes magisches Zeichen daß die Besonderheit des nächsten Zeichens aufhebt.
Wenn man also ein Escape-Zeichen vor das Semikolon setzt, verliert das Semikolon seine Bedeutung und wird als normaler Text gelesen.
Leider ist mir kein Escape-Zeichen bekannt auf das die Q3-Engine achtet.

Deshalb habe ich die Zeilen auf 2 Zeilen aufgeteilt, damit auf die Variable 'setclass' statt einer Kette nur ein Text gelegt wird.
Dieser Text verweist dann auf eine andere Variable in der die Befehls-Kette steht die ausgeführt werden soll.

mfG WoodSTokk
Du scheisst es nicht zu wetzen
Testserver: @peStable (95.129.206.243:27960)
Krumenuke
Mod-Schreck
Mod-Schreck
Beiträge: 310
Registriert: Di 2. Sep 2003, 12:30
Wohnort: Bayern
Kontaktdaten:

Beitrag von Krumenuke »

also auf jedenfall danke für die ausführliche erklärung!

versthe das jetz alles ein bisschen besser, das mit der artillery ist schade das das ncih hinhaut, hab in der shcule auch schon mal mit if und when befehlen gearbeitet (nur minimal) und hab gehofft es würde so irgednwie gehn, so muss ich schaun wie cihd as hinbekomme ^^

wegen dem spawn skript, war letzt auf nem server und da ging es nur teilweise aber ich glaubd aslag darand as es kein etpro server war, werds nochmal genauer testen! auf jedenfall DANKE!!!
Bild

Bild
Antworten