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 2200 201 202339 340 Next To the start

old Re: Scripting - Fragen/Probleme

Nekros
User Off Offline

Quote
Gast has written
Wenn man den befehl "freescript" benutzt, kann man dann irgendwie machen, dass es nur einen Teil des Scripts löscht, und nicht alles?


Hallo Gast,

meines Wissens nach, geht das nicht, aber ich würde an deiner Stelle einfach eine Variable benutzten oder den Befehl skip oder skipevent, damit kann man entweder den gesamten Rest des Scripts übersprigen oder nur das eine Event.
Also mit if würde das dann ca. so aussehen:
1
2
3
4
5
6
7
8
9
10
on:hit { 	//deinscript
	...
	...
	if ($deinevariable==0) { 	//Der Teil wird übersprungen
		...
		...
	}	//hier gehts weiter
	...
	...
}
statt freescript nimmste dann einfach $deinevariable++;
Und das mit der Mauer macht man denk ich so
1
2
$waffe = getplayerweapon;
if ($waffe==0) {damage "unit", 1, X}
X ist der betrag den du an Lebensenergie abziehen möchtest.
Du kannst das Script in jede Mauer schreiben, aber wahrscheinlich gibt es auch n globales Event wenn der Spiele irgendetwas trifft ich kenns zumindest noch nicht.

Beide Scripts sind noch ungetestet

old Items in Rucksack abfragen

Gela
User Off Offline

Quote
Hallo,
ich wüsste gern, ob es eine Möglichkeit gibt, mittels eines Scriptes herauszufinden, ob der Spieler etwas im Rucksack hat.

Ich möchte gern etwas aus dem Rucksack löschen, und dann eine Meldung ausgeben - was aber nur Sinn macht, wenn der Spieler überhaupt etwas im Rucksack hat - und zwar ganz egal, was es ist.

Also nicht einzelne Item-Abfragen wie: if playergotitem xxx, sondern wirklich global.

Vielleicht über eine Variable oder über Zählung, oder wie auch immer....

Geht das? Oder hat jemand eine Idee, wie man es hinbasteln könnte?

Wäre für Tipps dankbar - Lieber Gruß Gela

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Versteh ich jetzt nicht ganz. Wenn du gucken möchtest ob der Spieler ein spezielles Item im Rucksack hat ist playergotitem doch optimal.


Wenn du wissen willst ob der Spieler überhaupt irgendein Item trägt ist s2 cmd count_stored mit "unit" und 1 zu gebrauchen.

old Re: Scripting - Fragen/Probleme

Gela
User Off Offline

Quote
Nova has written
Versteh ich jetzt nicht ganz. Wenn du gucken möchtest ob der Spieler ein spezielles Item im Rucksack hat ist playergotitem doch optimal.


Wenn du wissen willst ob der Spieler überhaupt irgendein Item trägt ist s2 cmd count_stored mit "unit" und 1 zu gebrauchen.


zu 1: Nova, ich sagte ja, ich will eben kein spezielles Item nachschauen.

zu 2: Aber s2 cmd count_stored scheint gut zu sein - wenn du jetzt noch nett wärest, mir zu sagen, wie ich es schreiben muss.
Ich habe count_stored noch nie benutzt, und wie man es anwendet steht in der Referenz ja leider auch nicht

Die Bedingung muss sein: Wenn der Spieler etwas im Rucksack hat, egal was es ist, sollen alle Items im Rucksack gelöscht werden.

Kannst du mir dazu die richtige Syntax des Scriptes geben?
Du weißt ja, ich bin Anfängerin...

Lieber Gruß - Gela

old Re: Scripting - Fragen/Probleme

Cryp18Struct
User Off Offline

Quote
1
2
3
4
5
if( count_stored( "unit", 1 ) > 0 ){
	// Hat der Spieler ( unit 1 ) mehr als 0 Items im Inventar ?
	freestored "unit", 1, "all";
	// Alle Items die der Spieler eingelagert hat löschen
}

Muss natürlich noch in ein passendes Event gepackt werden.

Lies dir am besten die Befehlsreferenz duch, die meisten Befehle sind recht gut erklärt.

old Re: Scripting - Fragen/Probleme

Gela
User Off Offline

Quote
Cryp18Struct has written
1
2
3
4
5
if( count_stored( "unit", 1 ) > 0 ){
	// Hat der Spieler ( unit 1 ) mehr als 0 Items im Inventar ?
	freestored "unit", 1, "all";
	// Alle Items die der Spieler eingelagert hat löschen
}

Muss natürlich noch in ein passendes Event gepackt werden.

Lies dir am besten die Befehlsreferenz duch, die meisten Befehle sind recht gut erklärt.


Danke dir Cryp - die Befehle mögen manchmal halbwegs verständlich sein .. - aber meine Kenntnisse, sie in ein funtionierendes Script zu verwandeln gehen eher gegen "null"

Noch mal: danke sehr, ich werde es ausprobieren, und hoffe, es klappt

Lieber Gruß - Gela

Edit: es klappt - super - danke sehr - LG Gela
edited 1×, last 01.08.08 12:21:18 pm

old Re: Scripting - Fragen/Probleme

Guest

Quote
tut mir leid, wenn ich mich zu dumm anstelle, aber ich habs nochmal vesucht und jetzt zeigt er immer nur an, das die kiste leer ist:

1
2
3
4
5
6
7
8
9
on:use {
	  $zeugs==1;
	  if ($zeugs==1) { 
	  find 100;
	  $zeugs--1;
	  }else{		
	  msg "leer" [,3];
	  } 
}

old Re: Scripting - Fragen/Probleme

ohaz
User Off Offline

Quote
$zeugs==1;

da ist ein = zu viel!
wenn man variablen deklariert wird nur ein = verwendet.
wenn man nachschauen will, ob eine variable einen bestimmten wert hat ==

mit deinem Skript wird nun die Variable $zeugs nie definiert, daher ist sie "", also leer.

old Re: Scripting - Fragen/Probleme

Cryp18Struct
User Off Offline

Quote
@Gast
Die erste Zeile ist doppelt falsch:
•     Für Variablenzuweisungen wird nur ein Gleichheitszeichen verwendet.
•     Allerding ist es auch unsinnig $zeugs an dieser Stelle auf 1 zu setzen,
      in dem Fall würde die Kiste immer als voll erkannt werden.

[edit] $zeugs--1 geht auch nicht. Entweder $zeugs-- oder $zeugs -= 1;

Parameter in eckigen klammern werden entweder komplett weggelassen oder ohne eckigen Klammern notiert.

Für die Scriptinggrundlagen: http://stranded.unrealsoftware.de/s2_scripting1.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
on:start{
	local $zeugs;
	$zeugs = 0;
}

on:use{
	local $zeugs;
	if( $zeugs == 1 ){
		find 100;
		$zeugs--;
	}else{
		msg "leer", 3;
	}
}
[/edit]

old Re: Scripting - Fragen/Probleme

Guest

Quote
oh, dass ich "$zeugs--1" geschrieben hab, ist mir garnicht aufgefallen. ich arbeite sonst auch nicht groß mit variablen... danke auf jeden fall für dass script!

old Re: Scripting - Fragen/Probleme

AdidasOFC1
BANNED Off Offline

Quote
Gast has written
ich arbeite sonst auch nicht groß mit variablen...

Das solltest du schleunigst ändern! Variablen sind in Stranded 2 und in allen anderen Scripting- und Programmiersprachen das wichtigste überhaupt... Ohne Variablen kannst du kein bisschen Dynamik in deine Scripts bringen und überhaupt nicht viel machen!!!11eins

old Re: Scripting - Fragen/Probleme

Uglynator
User Off Offline

Quote
Ich kapiere das nicht immer wennn ich im spiel(^ dm execute script) eingebe: setskill "Anpflanzen" 800
funzt es net was mach ich falsch (ich bin ABSOLUTER neuling in sachen scripts)

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Das kommt weil die Skills in Englisch gespeichert werden, aber dennoch in deutsch angezeigt.

Versuchs mal so:
1
incskill "plant", [X], "Anpflanzen";
Für [X] setzt du eine Zahl ein, also in deinem Fall:
1
incskill "plant", 800, "Anpflanzen";

Ich hoffe ich konnte dir helfen.
edited 2×, last 02.08.08 07:12:18 pm

old Re: Scripting - Fragen/Probleme

Guest

Quote
ah, gut das gerade was zum thema skills gepostet wird, denn ich hab da leider auch ein problem:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
on:start {
setskill "hit" ,0, "Schlagen";
}

on:hit {
incskill "hit" ,1, "Schlagen";
$hitskill=skillvalue("hit");
if ($hitskill==2) {event "hitskillplus", "global";}
}

on:hitskillplus {
msg "Skills verbessert!",1;
play "fx_spell.wav";
player_damage 5;
}

igendwie klappt da nicht, dass ich den skill verbessere, und außerdem wüsste ich gerne, was ich machen muss, damit ich die verschiedenen Skillstufen im charaktermenü anzeigen kann (z.B.: Anplflanzen: 50 - Beerenbusch-Anpflanzer)

old Re: Scripting - Fragen/Probleme

Royal Flash
User Off Offline

Quote
bei den script

on:hit {
incskill "hit" ,1, "Schlagen";
$hitskill=skillvalue("hit");
if ($hitskill==2) {event "hitskillplus", "global";}
}
}     <= muss noch ne klammer hin wegen den if.

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Nein, Royal Flash, Gast hat die If-Abfrage bereits in der selben Zeile beendet, daher ist das schon richtig.



Was passiert denn genau? Kriegst du eine Fehlermeldung oder wie?

Wo hast du das Script denn rein geschrieben?

old Re: Scripting - Fragen/Probleme

AdidasOFC1
BANNED Off Offline

Quote
wahrscheinlich passiert gar nichts, weil das event "hit" gar nicht wirklich ausgelöst wird. es handelt sich nämlich um ein lokales event, d.h. es wird nur bei den geschlagenen modellen ausgelöst.
eine lösung wäre, jedem objekt, bei dem es skill-upgrades geben soll, folgende zeile anzuhängen:

on:hit {event "iskill_hit","global"; }

und dann das on:hit in deinem script zu on:iskill_hit abzuändern (so ist es auch in s2ext gemacht)


zu deinem 2. problem:
wenn du den skill im charaktermenü anklickst, wird das globale event "skill_SKILLNAME" ausgeführt.
d.h. der passende script wäre z.B.

on:skill_hit { msgbox "Skill Info","sys/skillinfos/hit.inf"; }

dementsprechend muss aber auch eine hin.inf in /sys/skillinfos liegen, die ähnlich aufgebaut ist wie die anderen dateien dort.
das !* (für * eine zahl) steht jeweils für eine schriftart. !4 ist z.b. die grüne.

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Soweit habe ich auch schon gedacht, nur wusste ich nicht das das Script im Globalen Script, daher wollte ich nachfragen.

Kleiner Tipp: Benenne den Skill besser um, wer weiß ob es da zu Kompatibilitätsproblemen kommt, da "hit" ja öffters vom Programm benutzt wird...
To the start Previous 1 2200 201 202339 340 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview