Forum
Stranded II Scripts Scripting - Fragen/Problemed.h. sie könnten VILLEICHT wenn man ne Menge gute Scripts schreibt was bauen, villeicht sogar noch sinnvoll, aber wirklich toll wird das nich.
EDIT: NJARGHS! Sry, ist wohl spät heut Abend natürlich on:use!
Möglich wäre es mit skillvalue - Problem : nur 10 Stellen möglich, das heißt ich bräuchte sehr viele skills!
Wie viele skills können angelegt werden? Mehr als 1000 [2000?] ?
Bei skillvalue kann der skill mittels join zusammengesetzt werden, ein Teil des Namens ist eine variable : $skill=join("bla_",$tmp) -> skills bla_1,bla_2...
Bei Variablen ist das Problem, dass Namensteile nicht variabel darstellbar sind.
Deshalb geht dies nicht mit Variablen, da dazu "$" beim Befehl enthalten wäre und dann versucht S2 eine Variable zu finden -> Zeichen wird entfernt/ausgetauscht/Fehlermeldung]
Sonstige Möglichkeiten [wie Text in Info speichern] sehe ich nicht.
Evtl als zweite Möglichkeit [eher eine Notlösung] eine Variable mit sehr langem String.
Wie viele Stellen/Zeichen kann/darf ein String enthalten?
Ist die Anzahl an Variablen unbegrenzt?
Andere Möglichkeiten?
Du musst dazu mit getlocal und setlocal die variablen in ein objekt übertragen, etwa so:
1
2
3
4
5
2
3
4
5
$i=0; $tmpname=join("var",$i,"_string"); $tmp=getlocal("unit",1,$tmpname); $tmp++; setlocal "unit",1,$tmpname,$tmp;
Mit cinema 4d kann ich wenigstens Grafiken machen, Benzin fässer ekomm ich auch hin und jeep und heli wir dauch net schwer, wenn ich mir die fahrzeug enigne bissel modifizier dafür
bizzl has written
Es gibt eine möglichkeit variablen variable anzusprechen.
1
2
3
2
3
$i=0; $tmpname=join("var",$i,"_string"); setlocal "unit",1,$tmpname,;
Ja super, so was wäre perfekt
Das heißt meine Variable hieße bei deinem Beispiel "0_string"
und das Prinzip funktioniert nur bei localen Variablen?
Könnte ich sie so:
join "var",$i,"_","var",$ii,"_string" zu
$_$_string [und so weiter] erweitern?
wenn ich das auf "unit"1 beziehen würde, würden die Variablen aber gelöscht - oder?
sprich, wenn der Spieler wiederbelebt würde, wären die Variablen gelöscht!?
[kein Problem -> Info; muss es nur wissen]
edited 1×, last 26.10.07 06:29:33 pm
Paddi has written
Das heißt meine Variable hieße bei deinem Beispiel "0_string"
nicht ganz: var0_string
Paddi has written
und das Prinzip funktioniert nur bei localen Variablen?
Ja, aber du kannst sie ja via getlocal/ setlocal beliebig rausziehen
Paddi has written
Könnte ich sie so:
join "var",$i,"_","var",$ii,"_string" zu
$_$_string [und so weiter] erweitern?
join "var",$i,"_","var",$ii,"_string" zu
$_$_string [und so weiter] erweitern?
äh, jein. Zu $_$_string bestimmt nicht (ist kein valider variablenname, außerdem kann man afair das dollarzeichen nicht in strings speichern), das würde eventuell zu var0_var_string oder var0_var0_string oder sowas werden, je nach dem ob und worauf $ii initialisiert wird.
- mit den Variablenzeichen wollt ich ausdrücken, dass dort der Wert der Variable wäre!?
Ps.: AH!!!
ich brauch das Var-zeichen gar nicht
wofür brauch ich denn das "var" im Name?
wenn % den Wert/String einer Variable darstellt
könnte ich also:
locale Variable "bla_%_%_%"
erstellen, indem ich:
$tmpname=join("bla_",$i,"_",$ii,"_",$iii);
setlocal "unit",1,$tmpname,"Wert";
wobei ich bedenken müsste:
wenn ich das auf "unit"1 beziehen würde, würden die Variablen aber gelöscht - oder?
sprich, wenn der Spieler wiederbelebt würde, wären die Variablen gelöscht!?
[kein Problem -> Info; muss es nur wissen]
edited 1×, last 26.10.07 06:58:52 pm
Paddi has written
nein
- mit den Variablenzeichen wollt ich ausdrücken, dass dort der Wert der Variable wäre!?
Ps.: AH!!!
ich brauch das Var-zeichen gar nicht
wofür brauch ich denn das "var" im Name?
- mit den Variablenzeichen wollt ich ausdrücken, dass dort der Wert der Variable wäre!?
Ps.: AH!!!
ich brauch das Var-zeichen gar nicht
wofür brauch ich denn das "var" im Name?
In zukunft nehme ich wieder foo und bar
Paddi has written
wenn % den Wert/String einer Variable darstellt
könnte ich also:
locale Variable "bla_%_%_%"
erstellen, indem ich:
$tmpname=join("bla_",$i,"_",$ii,"_",$iii);
setlocal "unit",1,$tmpname,"Wert";
könnte ich also:
locale Variable "bla_%_%_%"
erstellen, indem ich:
$tmpname=join("bla_",$i,"_",$ii,"_",$iii);
setlocal "unit",1,$tmpname,"Wert";
ähm, was soll das bringen?
sry, aber der Wert sollte in der variable gespeichert werden, nicht in ihrem namen.
Paddi has written
wobei ich bedenken müsste:
wenn ich das auf "unit"1 beziehen würde, würden die Variablen aber gelöscht - oder?
sprich, wenn der Spieler wiederbelebt würde, wären die Variablen gelöscht!?
[kein Problem -> Info; muss es nur wissen]
wenn ich das auf "unit"1 beziehen würde, würden die Variablen aber gelöscht - oder?
sprich, wenn der Spieler wiederbelebt würde, wären die Variablen gelöscht!?
[kein Problem -> Info; muss es nur wissen]
nein, wird nicht gelöscht, da der spieler ja nicht neu erzeugt wird, sondern es wird lediglich die lebensenergie wieder auf voll gesetzt und eventuell wird noch ein flag entfernt, mehr nicht
Ich brauche eben viele Variablen und um das in einem auslesbaren System zu realisieren will/muss ich eben den Variablennamen variabel gestalten
..
also geht es oder hab ich irgendetwas falsch verstanden ?
Paddi has written
Ja, den setze ich auch.
Ich brauche eben viele Variablen und um das in einem auslesbaren System zu realisieren will/muss ich eben den Variablennamen variabel gestalten
..
also geht es oder hab ich irgendetwas falsch verstanden ?
Ich brauche eben viele Variablen und um das in einem auslesbaren System zu realisieren will/muss ich eben den Variablennamen variabel gestalten
..
also geht es oder hab ich irgendetwas falsch verstanden ?
Es geht, aber es ist alles andere als sinnvoll komplexere Namen zu produzieren als vllt arrayINDEXxINDEX
Danke!
Na mal sehen
Wen es interessiert:
Variablenstring ist wahrscheinlich/praktisch unbegrenzt
[getestet mit - hu, weit über 10*11*18 Zeilen
mit durchschnittlich über 30 Zeichen!
- dauert dann aber sau lange zum auslesen aus der Datei *g* ]
Ach ja, es dürfen allerdings keine Operatoren enthalten sein! Auch keine Bereichseinteilungen (innerhalb des Strings, in der Datei natürlich schon)
mein map
Guest1. sollen 3-4 eier nach einer aufgabe "abgegeben" werden..also einfach aus dem invenatr verschwinden..
ich brauche den kompletten script da ich keinerlei script kenntnisse habe und bisher nur mir vorlagen aus wiki und so gearbeitet habe..
2. nach der abgabe soll der pirat verschwinden. ..wieder den ganzen script bitte..
3. fängt der dialog zwischen pirat und spieler direkt nach dem starten der map an ohne das sman irgendwas drückt oder auch nur in der nähe des piraten ist.. ich habe im script den befehl "on:use" benutzt..
4. möchte ich bei einem händler auch ein normales gespräch führen können..
bevor jetzt gesagt wird dass ich mal da und da nachgucken muss will ich sagen dass ich das getan hab und festgestellt hab dass scripten zu komliziert für mich ist..ich hab nur wenig verstanden von dem was da stand.
1
2
3
2
3
on:WASAUCHIMMER { freestored "unit",1,IDDEREIER,4; }
2.
beim pirat folgender
1
2
3
2
3
on:WASAUCHIMMER { free "self"; }
3. bist du sicher dass das script nicht noch wo anders steht?
wenn ja, hast du wahrscheinlich irgendwo einen klammerfehler gemacht (bei einem script vorher (wie freeze "self"; ) keine schließende klammer gesetzt: } )
4. mach einfach dem händler ne dialog-seite ( dialoge_erstellen ), mit einem button der den script, der auf das händlerscript verweist und evtl weitere buttons
5. du solltest dir bevor du im wiki liest, die Scripting-Einführung mal anschauen. Ganz ohne gehts nämlich nicht...
kann man irgendwie die skills verändern?
also irgendwie verkürzen z.b beim anpflanzen dass ich die werte verändern kann wann ich welchen level erreiche. des dauert einfach für mich zu lange bis zum level bauer 800 mal was einpflanzen da hat man schon ne ganze insel angepflanzt. kann man das irgendwie nicht ändern?