Forum

> > Stranded II > Scripts > Scripting - Fragen/Probleme
ForenübersichtStranded II-Übersicht Scripts-ÜbersichtEinloggen, um zu antworten

Deutsch Scripting - Fragen/Probleme

6.780 Antworten
Seite
Zum Anfang Vorherige 1 26 7 8339 340 Nächste Zum Anfang

alt Re: Scripting - Fragen/Probleme

HW
User Off Offline

Zitieren
@DC:
Könntest du einen Befehl hinzufügen, der ein gelagertes Item löscht? Z.B. freeitem. Damit man z.B. Items aus dem Inventar des Spielers verbrauchen kann.

alt Re: Scripting - Fragen/Probleme

HW
User Off Offline

Zitieren
THX, und:
Könntest du ein Event erstellen, das ausgelöst wird, wenn die Unit, bei der das Skript ausgeführt wird, angreift?

alt Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Zitieren
Joa... über KI-gebundene Ereignisse muss ich mir noch Gedanken machen. Ist aber kein Problem das umzusetzen.

alt Re: Scripting - Fragen/Probleme

HW
User Off Offline

Zitieren
Und könnte man die Behaviours Blade oder Spear mit State-Behaviours wie poison und fire kombinieren?
Z.B. für vergiftete Speere.

alt Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Zitieren
Nein... ich gebe Items besser ein weiteres Feld bei den Definitionen zum Anhängen eines Waffen-States. Ist besser denke ich.

alt Re: Scripting - Fragen/Probleme

HW
User Off Offline

Zitieren
Das Trinkskript von mir sollte in der Version 0.0.0.3 gar nicht funktionieren. Warte mal bis zum nächsten Release.

@DC: Wegen dem on:attack1 und so:
Könntest du auch einen Befehl dazu hinzufügen, der zurückgibt, ob die Waffe getroffen hat? Könnte für Skills ganz nützlich sein.

alt Re: Scripting - Fragen/Probleme

HW
User Off Offline

Zitieren
Consume müsste funktionieren, aber den Befehl "inarea_freshwater" gibt es in der aktuellen EXE (0.0.0.3) noch nicht, daher funktionierts nicht. Wundert mich eigentlich, dass da das Spiel nicht abstürzt oder in der Art.

Das Trinkskript, wie ich es jetzt habe, sieht so aus:
1
2
3
on:usesea {
 drink 0,0,-10,0;
}
Allerdings kann man damit nur Salzwasser trinken, da das Spiel Süßwasser noch nicht wirklich erkennen kann.

alt Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Zitieren
Ja der Scriptparser ist in einigen Situationen ziemlich unsensibel in Bezug auf Sachen die er nicht kennt...

Ein Befehl der zurückgibt ob man getroffen hat.. uff... ja okay.
Mache ich dann aber mit einem weiteren Event (on:impact), 1. weil das on:attack vor dem eigentlichen Angreifen ausgeführt wird damit die Möglichkeit besteht dieses über skipevent abzubrechen und 2. weil ja bei Waffen mit Projektilen die sichtbar fliegen zum Abschusszeitpunkt noch nicht bekannt ist, ob man treffen wird.
Mit Befehlen kann man dann ermitteln welche Klasse/ID man getroffen hat.

alt Re: Scripting - Fragen/Probleme

HW
User Off Offline

Zitieren
@DC:
Bei S1 gab es ja Kombinationen mit denselben Kosten, z.B Stein+Ast > Hammer/Speer. Ich will sowas bei S2 nun auch machen. Dazu habe ich mir anhand des Hammer/Speer-Beispiels folgendes Skript überlegt (bei "alteritem" habe ich die ID des zu ersetzenden Items als letzten Parameter hinzugefügt):
1
2
3
if (playergotitem(*Hammer*)>1) {
alteritem 1,*Speer*,1,*Hammer*;
}
Würde das, wenn du mit dem zusätzlichen alteritem-Parameter fertig bist, funktionieren?

Und wenn ich schon von Kombinationen spreche:
Es gibt einen Bug, dass... naja, ich kanns nicht so gut erklären, daher hier ein Beispiel:

Ast + Feder > Holzpfeil
Ast + Feder + Stein > Pfeil

Angenommen, ich deklariere diese Kombinationen richtig in der combinations.inf:
Die 1. Kombination würde ganz normal klappen, aber bei der 2. würde die erste ablaufen, also es würde ein Holzpfeil entstehen (Der Stein wird aber nicht verbraucht), d.h. wenn man zusätzlich zu den Items einer Kombination andere Items markiert und dann kombiniert, läuft diese Kombination normal ab, auch wenn durch die zusätzlichen Items eine andere Kombination ablaufen sollte. Puh... ich hoffe, man konnte es durch das Beispiel einigermaßen verstehen.

THX im Voraus
1× editiert, zuletzt 08.01.06 22:01:29

alt Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Zitieren
Das Script sollte klappen, falls ich bei alteritem den zusätzlichen Parameter einbaue. Allerdings sollte man zusätzlich noch "skipevent;" reinschreiben (wo innerhalb des Events ist egal), da SII sonst trotzdem versucht die standard Kombination auszuführen (wobei ich im Code nachgucken müsste was passiert - entweder es ist egal oder es gibt einen MaV-Fehler und das Spiel beendet sich)

Das mit den Kombinationen werde ich fixen, danke.

alt Re: Scripting - Fragen/Probleme

HW
User Off Offline

Zitieren
Warum ich skipevent nicht eingebaut habe:
So wie ich mir es gedacht habe, wird, wenn man den Hammer schon hat, ein neuer Hammer produziert und sofort in einen Speer umgewandelt. Aber mit dem Skipevent hast du mich auf eine Idee gebracht, wie es schon in V 0.0.0.3 klappen sollte...

Edit: Nein, mit skipevent klappt es nicht, da dann keine Items verbraucht werden.

alt Re: Scripting - Fragen/Probleme

DC
Admin Off Offline

Zitieren
Oh... ich habe nicht mitgedacht
Der Punkt ist, dass Scripts eigentlich immer VOR dem richtigen Ereignis ausgeführt werden (eben meist darum, damit man per Script und skipevent dieses Ereignis abbrechen/überspringen kann). Von daher wäre dein Ansatz dann falsch, da beim Ausführen des Scripts noch keine Kombination stattgefunden hat.

So sollte es dann klappen (falls die Befehle in der downloadbaren Version schon alle drin sind, ich glaube aber nicht)
1
2
3
4
5
6
7
8
9
10
if (playergotitem(*Hammer*)>0){
   //Items verbrauchen
   free "item",getstored("unit",1,*Stein*),1;
   free "item",getstored("unit",1,*Ast*),1;
   //Neues Item erstellen und dem Spieler geben
   $id=create("item",*Speer*);
   store $id,"unit",1;
   //Standard Kombination nicht ausführen
   skipevent;
}
(Unit mit ID 1 entspricht immer dem Spieler selbst und das create und store könnte man natürlich auch ohne Variable lösen indem man direkt das create als Parameter für store nimmt)

alt Re: Scripting - Fragen/Probleme

HW
User Off Offline

Zitieren
Ich denke so würde es trotzdem funktionieren:
1
2
3
if (playergotitem(*Hammer*)>0) {
alteritem 1,*Speer*,1,*Hammer*
}

Erklärung des Ablaufs:
Zuerst wird geprüft, ob der Spieler bereits einen Hammer hat. Ist dies der Fall, wird der Hammer in einen Speer umgewandelt. Danach läuf die Kombination normal ab, d.h. der eben umgewandelte Hammer wird nachproduziert. So war das gemeint. Ich denke, so würde es auch gehen, naja, ich bin eben etwas stur, was sowas angeht.

Dass die Unit 1 der Spieler ist, weiss ich übrigen bereits durch die Karte "Skillandstates".
Zum Anfang Vorherige 1 26 7 8339 340 Nächste Zum Anfang
Einloggen, um zu antworten Scripts-ÜbersichtStranded II-ÜbersichtForenübersicht