Forum

> > Stranded II > Scripts > Scripting - Fragen/Probleme
Forums overviewStranded II overview Scripts overviewLog in to reply

German Scripting - Fragen/Probleme

6,780 replies
Page
To the start Previous 1 2328 329 330339 340 Next To the start

old Re: Scripting - Fragen/Probleme

Spawnluebeck
User Off Offline

Quote
Hi, also erstmal möcht ich sagen saugeiles game und nachdem ich es nun ne zeitlang gespielt habe, haben meine Frau und ich uns an die Arbeit gemacht, uns selber einzubringen und ein eigenes kleines Abenteuer zu erstellen! nun zum Knackpunkt^^

Wir haben nicht viel Ahnung vom scripten, aber eigentlich alles recht gut gemeistert durch lesen und testen, aber nun hängen wir fest. AAAAAAAAlso:

Wir wollen erreichen, das sobald eine Kapelle gebaut wurde uns ein KI(der verrückte Professor) in einem dialogue ein Objekt übergibt, aber wir wissen nicht wie wir dies einbauen sollen. Ok, ich geb zu schwer nachvollziehbar was ich möchte, daher würde ich mein gesamtes script mal demjenigen schicken, der uns ernsthaft helfen würde.

Wenn jemand so weiss was ich möchte, kann er dies auch gerne hier kundtun^^.

Bei einer Antwort bitte immer bedenken, das dies wirklich Neuland für uns ist.

Gruss Spawnluebeck

old Re: Scripting - Fragen/Probleme

Hecky3
User Off Offline

Quote
Spawnluebeck has written
Wir wollen erreichen, das sobald eine Kapelle gebaut wurde uns ein KI(der verrückte Professor) in einem dialogue ein Objekt übergibt, aber wir wissen nicht wie wir dies einbauen sollen.


Hmmm...
Also du/ihr solltet es mal so versuchen:

Erstmal eine Variable erstellen z.B. $kapelle. Am Anfang sollte sie 0 sein. Also On:Start { $kapelle = 0; }.

Wenn ihr die Kapelle baut (ich geh mal davon aus dass ihr die Stranded 2.5 Mod meint, da da ja eine Kapelle vorhanden ist)
müsste ein Event ausgelöst werden (ich weiß es nicht genau)
sowas wie on:chapelbuild oder sowas.

Wie gesagt ich weiß es nicht genau da ich grad keine Stranded 2.5 Mod habe...
Musst du halt mal nachgucken oder bei BiGSiD nachfragen.

Aufjedenfall muss bei On:Chapelbuild (oder so ähnlich) die Variable auf 1 gesetzt werden. Dann muss beim Prof wenn ihr ihn ansprecht (On:Use) überprüft werden ob die Variable 1 oder 0 ist. Wenn die Variable 1 ist wird die s2 cmd msgbox / der s2 cmd dialogue angezeigt falls die Variable 0 ist halt nicht bzw. mit einem anderen Text.

Hoffe du hast es verstanden...


EDIT:
Gerade überlesen dass ein Objekt (Item?) übergeben werden soll.
Das musst du dann bei der msgbox bzw dem Dialog reinscripten also mit s2 cmd find .

old Re: Scripting - Fragen/Probleme

BiGSiD
User Off Offline

Quote
hallo,

ich habe grad mal bei S2.5 nachgesehen,
Beim Bau(Abschluss des Baues) der Kapelle greift folgender Code:
1
2
3
on:build_finish {
		event "hutbuild",0,0;
	}

Das Event "hutbuild" erscheint mir aber in diesem Fall sehr ungünstig, da (wie ich glaube) das selbe Event beim Bau der Hütte ausgelöst wird (ich hatte damals den Code einfach nur kopiert)

Jetzt haben wir den Salat...

Oder kann man so freiweg dieses Event "hutbuild" durch "chapelbuild" ersetzen, wird in diesem Monent das Event erstellt und ist dann abrufbar? Oder muss das vorher woanders definiert werden, kp

old Re: Scripting - Fragen/Probleme

Hecky3
User Off Offline

Quote
eig müsste das einfach so in chapelbuild umbenannt werden können...
Sehe nichts was dagegen spricht...

Bei der ExtMod ist das auch so:
objects_ext_buildings.inf has written
     on:build_finish {
          event "funghigardenbuild",0,0;
     }

old Re: Scripting - Fragen/Probleme

Spawnluebeck
User Off Offline

Quote
Vielen Dank erstmal für die schnelle Hilfe, ich habe in der sys Datei nachgeschaut und die Kapelle heisst als einziges gebäude auf deutsch Kapelle.

Nun habe ich das Problem sobald ich in das script $Kapelle (habe auch 2 andere Gebäude getestet) einbinde, das Spiel abstürzt und er mir folgende Fehlermeldung auswirft:

Invalid DIALOGUE Property '$Kapelle'

Also entweder habe ich dich doch nicht verstanden *gg* oder aber dat will er so nicht

Gruss Spawni

old Re: Scripting - Fragen/Probleme

BiGSiD
User Off Offline

Quote
@ Hecky, wäre mir auch lieber das umzubenennen aber dann könnte die map nicht mehr überall funktionieren.

@ Spawni, welche Version von S2.5 nutzt ihr denn, den älteren Mod oder die neue Einzelversion? beide unterscheiden sich bei der Kapelle, in der neueren Version ist eine 'überholte' Kapelle zusätzlich(object_buildings - ID 241), mit Buntglasfenstern und wählbarer Inneneinrichtung(Tür und/oder Sitzbänke) da hab ich voll verschwitzt dieses per script einzurichten.
Meine Idee dazu wäre jetzt einfach nur eine Kapelle bauen zu lassen und danach (sozusagen als Gebäude-Upgrade) mit zusätzlichem Material die Einrichtung(als Block/Modell mit 2x3 Bänken, Tür und Fenstern) zu bauen.

Es lassen sich keine Baustellen auf dem Boden der Kapelle anlegen um dieses einzeln bauen zu können, musste ich leider feststellen, als ich mal Fackeln in die Kapelle haben wollte
Spoiler >


Wie ihr seht habe ich da echt was verschwitzt, am besten ihr konzentriert euch auf die erstgenannte Kapelle (object_buildings - ID 224) ohne Schnick-Schnack und der Rest könnte beim nächsten Update von S2.5 gefixed sein, Sorry

P.S.: zu den Fragen der Scripte auf einer karte und gewissen Auslösern, habe ich null, bis gar keine Ahnung, da muss wer anders helfen

old Re: Scripting - Fragen/Probleme

Hecky3
User Off Offline

Quote
BiGSiD has written
wäre mir auch lieber das umzubenennen aber dann könnte die map nicht mehr überall funktionieren.


hmm stimmt auch wieder aber wenn man z.B. ein tagebucheintrag erstellen möchte, wenn der Spieler eine Hütte baut wird dasselbe Event auch bei der Kapelle ausgelöst...
Heißt es ist egal ob man Kapelle oder Hütte baut um den Tagebucheintrag zu bekommen.
(Könnte zum Problem beim Abenteuer werden).


Zum Spoiler:
Wenn ich das richtig verstanden habe willst du die Fackeln nachträglich "bauen" und dann anzünden.

Du müsstet dann alle Fackeln einzeln (evt. auch per Script) platzieren und dann anzünden. Das müsste dann gehen.

Wenn aber alle Fackeln ein Modell sind könnte es schwierig werden...
Weiß nicht ob das da auch möglich ist.

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Hecky3 has written
Wenn aber alle Fackeln ein Modell sind könnte es schwierig werden...
Weiß nicht ob das da auch möglich ist.
Nö, dürfte eigentlich nicht gehen.

Ansonsten: Bei Problemen mit eigenen Scripten immer dazu schreiben, wie euer Script denn nun lautet.

old Re: Scripting - Fragen/Probleme

Hecky3
User Off Offline

Quote
Nova has written
Hecky3 has written
Wenn aber alle Fackeln ein Modell sind könnte es schwierig werden...
Weiß nicht ob das da auch möglich ist.
Nö, dürfte eigentlich nicht gehen.

Ansonsten: Bei Problemen mit eigenen Scripten immer dazu schreiben, wie euer Script denn nun lautet.


Aber man müsste doch eigentlich dann irgendwie mehrere "state=x,y,z" Parameter machen...
Geht das?

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
so kinners, dann lasst papa mal ran

@Spawnluebeck:
schreibe folgendes script in das globale script der map:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
on:build_start {
	if($profitem==0) {
		timer 0, 500, 1, "buildingsite_id";
	}
}

on:buildingsite_id {
	$buildingsite_id=lastbuildingsite();
	if(type("object", $buildingsite_id)==224) {
		if($profitem==0) {
			extendscript "object", $buildingsite_id, "sys\profextendscript.s2s";
		}
	}
}
More >

dann erstellst du im sys -ordner eine datei namens "profextendscript.s2s", öffnest diese mit einem beliebigen text-editor und schreibst da folgendes script rein:
1
2
3
4
5
on:build_finish {
	if($profitem==0) {
		$profitem=1;
	}
}
anschließend speicherst du die datei ab.

danach schreibst du noch folgendes script in die scriptbox des professors im editor hinein:
1
2
3
4
5
on:use {
	if($profitem==1) {
		dialogue "profitem", "sys\profitem.s2s";
	}
}

zum schluss erstellst du noch eine datei im sys -ordner, die du dann "profitem.s2s" nennst und schreibst da folgendes script rein:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
page=profitem
title=Hallo!
text=start
...blabla...
text=end
button=profitem2, weiter
button=action:close, weggehen

page=profitem2
name=Item gefunden!
script=start
find [hier die Typ-Nummer des items einsetzten, das der spieler erhalten soll, eckige klammern weglassen];
closemenu;
script=end
More >

dies ist natürlich nur ein beispiel-dialog und muss auf deine entsprechende situation angepasst werden. ich habe einfach mal ein paar grundlagen eingebaut, die man beim schreiben von dialogen kennen sollte, wenn du aber mehr infos dazu brauchst, dann solltest du mal hier gucken: s2 cmd dialogue

old Re: Scripting - Fragen/Probleme

Spawnluebeck
User Off Offline

Quote
Danke Papa, danke auch an alle anderen Helfer, echt super, dachte so ein altes Spiel, da taucht nach Tagen mal ne Antwort auf, ne arg getäuscht, find ich klasse, beide Daumen hoch.

Das einzige woran ich ein wenig scheitere, ist, wenn meine Frau und ich diese map spielen, funzt es wunderbar, nur weiss ich nicht wie das userverhalten so ist, kann man wenn man die karte uploaded auch sagen hey ihr müsst eure sys dateien ändern?^^ machen die leute das dann auch? ich meine ok deren problem, aber im grunde machen wir uns die arbeit ja auch für andere^^

Gruss Spawni

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
naja, das spiel sit zwar schon ein paar jahre alt aber immer noch gut
und dann ist ja auch noch der Multiplayer in entwicklung, wodurch auch wieder jede menge neue leute auf das spiel aufmerksam werden und leute, die schon länger dabei sind sich auch wieder verstärkt für das spiel interessieren
• Offizielle Seite der Stranded 2 Multiplayer Mod

und zum thema ob andere leute die map auch spielen können:
wenn du z.b. neue dateien erstellt hast, so wie es bei den scripts, die ich dir geschrieben habe, nötig war, dann kannst du diese dateien mit in den download reinpacken, am besten noch eine readme dazu erstellen, wo du dann reinschreiben kannst, wo die dateien hingehören.
wenn du irgendwelche sys-dateien verändert hast, dann ist das der definition nach schon einige mod, was bedeutet, dass leute, die diese modifikation bei sich nicht haben, wahrscheinlich probleme damit haben werden.
deswegen habe ich es bei den scripts auch vermieden, dass du irgendwelche bestehenden dateien verändern musst, indem ich die scripts ausgelagert habe und z.b. durch s2 cmd extendscript in die scripts mit eingebunden habe, die in der map im globalen script stehen.

old Re: Scripting - Fragen/Probleme

Spawnluebeck
User Off Offline

Quote
so habs mal ausgiebig getestet, zuerst in meiner map mit meinen anderen scripts uuuuund der Professor wollte nicht mit mir reden (ausser die anderen dinge die ich vorher schon gescripted habe). Da hab ich gedacht, naja liegt sicher an meinen scripten das er nun nicht mehr will, also meine scripte komplett rausgenommen, aber wieder nix.

Papa, ich möchte deine Mühe nicht schmälern, aber kann bei dir ein Fehler drin sein, das das so nicht funktioniert? ich habe alles doppelt und dreifach geprüft und ich hab beim kopieren "eigentlich" keinen Fehler drin, könntest dus bitte nochmal durchschauen? Wie gesagt keine Fehlermeldung in der Konsole, aber auch keinerlei gesprächsbereitschaft bei dem alten Sack^^

Gruss Spawni

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
hmm, eigentlich hatte ich gedach, dass das funktionieren sollte, hab vielleicht irgendwo warhscheinlich nen kleinen dreher drin ...

versuch mal folgendes:
schreibe bei diesem code hier in in der datei "profextendscript.s2s" noch die fette zeile hinzu:
Quote
on:build_finish {
     if($profitem==0) {
          $profitem=1;
          msg "profitem=1", 0, 5000;
     }
}

und schreib beim script vom professor auch noch hier die fette zeile hinzu:
Quote
on:use {
     if($profitem==1) {
          msg "Dialog", 1, 5000;
          dialogue "profitem", "sys\profitem.s2s";
     }
}


danach einfach mal im editor F12 drücken um das ganze schnell zu testen (bei der abfrage fürs speichern "ja" anklicken) und ausprobieren, alles natürlich in der richtigen reihenfolge und so...
wenn die beiden nachrichten erscheinen, dann bedeutet das, dass an der stelle noch alles in ordnung ist.
erscheint eine nachricht aber nicht, dann bedeutet das, dass an der stelle etwas falsch gelaufen ist und irgendwo vorher nen haken im script ist.

ich bin mir allerdings auch nicht ganz sicher wo das problem liegt, normalerweise bin ich recht gut im lösen von problemen in S2, was vllt noch sein könnte wär, dass ich irgendwo beim s2 cmd extendscript befehl was falsch gemacht hab bezüglich des textes, der dann in der externen datei steht, ich arbeite nämlich normalerweise wenig bis garnicht mit diesem befehl, ich bin jetzt einfach mal davon ausgegangen, dass man da einfach so das script in die datei reinschreiben kann, ohne sowas wie "script=start" und "script=end" oder so, weil es wird ja das script erweitert, wie der name des befehls ja schon sagt, also sollte das programm schon wissen, dass es sich dabei um ein script handelt...

ich empfehle halt einfach mal die 2 s2 cmd msg befehle wie oben beschrieben einzubauen und dann zu gucken was passiert, so behebt man nämlich solche bugs am schnellsten, wenn man nicht allein aus dem erneuten lesen des script das problem erkennt

old Re: Scripting - Fragen/Probleme

DEATHSHEAD
User Off Offline

Quote
Hi
Ich hätte da mal ne andere Frage.
Und zwar wie kann ich ein Objekt (sagen wir mal eine Kiste) mit eine Script während des laufenden Spiels erschaffen und einen script an das gerade erschaffene Object hängen.
Mit s2 cmd create könnte ich zwar ein Object erstellen, aber wie hänge ich einen Script an s2 cmd addscript geht ja nicht da mir die ID des Objects fehlt.

Danke schonmal im vorraus

old Re: Scripting - Fragen/Probleme

Der Muggemann
User Off Offline

Quote
create gibt die ID des Objects zurück!
schreib einfach:
1
$id=create("object",[KisteID]);
(die ID der Kiste weis ich jetzt nicht, deshalb [kistreID])
und schon wird die ID der Kiste in Die Variable $id gespeichert.

old Re: Scripting - Fragen/Probleme

DEATHSHEAD
User Off Offline

Quote
Ja klar aber wenn ich die ID der Kiste wüsste könnte ichn es ja direkt eingeben.
Das Problem ist in dem Moment in der die Kiste im Spiel erschaffen wird weiß ich ja nicht was für eine ID die Kiste hat, das Spiel erstellt sie ja und gibt ihr eine ID, die ich nicht weiß.
Also mal mein Code wie ich komme:
1
2
3
on:use{
		create "object", ID ,100, 100;
		}
Wie hänge ich jetzt an das die Kiste einen Script bekommt, z.B. den Script
1
2
3
4
on:use {
		//Beim benutzen der Kiste
		msg "Kiste geöffnet";
		}
angeängt

Bitte wenn möglich als vollständiger Script.

old Re: Scripting - Fragen/Probleme

Der Muggemann
User Off Offline

Quote
es gibt 2 IDs!
eine ID für das Objekt "Kiste" (das ist die die ich nicht wusste). hab jetzt mal nachgeschaut ist die 136. (Die bekommt man übrigens, indem man im Editor den Cursor über das Symbol der Kiste hält)
Und eine für das Objekt im Spiel, die man mit create bekommt oder bei dem objekt nachlesen kann!

also:
1
2
3
4
on:use{
	$id=create("object", 136 ,100, 100);
	addscript "object",$id,[Quelle];
}
und für Quelle halt entweder die ID einer Info, oder der Pfad einer Datei in dem das Script steht!

old Re: Scripting - Fragen/Probleme

BiGSiD
User Off Offline

Quote
Es ist besser die beschriebene Variable $id zu benutzen, die kannst natürlich auch umbenennen, aber da hast du die eindeutige ID der Kiste, bei mehreren Spielstarts ist diese besagte ID immer unterschiedlich, da jenachdem andere Objekte im Vorfeld geschaffen wurden.

Besser also, diese variable ID genau festzuhalten und so weiterzugeben.

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
Der Muggemann has written
es gibt 2 IDs!
eine ID für das Objekt "Kiste" (das ist die die ich nicht wusste). hab jetzt mal nachgeschaut ist die 136. (Die bekommt man übrigens, indem man im Editor den Cursor über das Symbol der Kiste hält)
Und eine für das Objekt im Spiel, die man mit create bekommt oder bei dem objekt nachlesen kann!

um die beiden besser unterscheiden zu können wird die eine (die, die man erfährt, wenn man den mauszeiger über das icon im editor hält) übrigens auch "Typ-Nummer" genannt, da sie den typ beschreibt, zu dem das objekt gehört.

die ID hingegen ist von der typ-nummer vollkommen unabhängig, z.b. das objekt mit ID 1 kann ein objekt vom typ 126 sein, ID vom typ 46, irgendwas...

in den Befehlsreferenzen sind diese beiden zahlen auch einfach nur als "Typ" und "ID" bezeichnet.
To the start Previous 1 2328 329 330339 340 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview