s2ext

Bitte logg dich ein oder registriere dich.

Einloggen mit Benutzername, Passwort und Sitzungslänge
Erweiterte Suche  

Neuigkeiten:

Fehler und Spammer oder Probleme beim Login hier melden.

Seiten: 1 ... 15 16 [17] 18 19 ... 47

Autor Thema: Fragen zum Scripting  (Gelesen 204221 mal)

DarkMessiah

  • Newbie
  • *
  • Beiträge: 7
Re: Fragen zum Scripting
« Antwort #240 am: Juni 09, 2008, 23:36:16 Nachmittag »

Danke Banane,
hat geklappt :hooray:
« Letzte Änderung: Juni 17, 2008, 12:58:51 Nachmittag von banane »
Gespeichert

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
Re: Fragen zum Scripting
« Antwort #241 am: Juni 25, 2008, 21:12:07 Nachmittag »

also, ich hab mal nen Code gemacht, dass wenn man ein bestimtes item hat, man ein anderes bekommt:

Code: (text) [Auswählen]
  1. on:use {if (playergotitem(806)>0){find 811, 1}}

Was wäre am einfachsten zu machen, dass man den Gegenstand (z.B. hier 811) nur einmal bekommen kann? Wenn man den ersten Gegenstand (hier 806) löschen würde, würde es denke ich schon gehen, ich fänd es aber cool, wenn man ihn behalten und trotzdem den 2. Gegenstand nur einmal bekommen könnte.   Danke im Voraus! ^^
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

banane

  • Newbie
  • *
  • Beiträge: 290
    • http://www.eliswebspace.de.vu
Re: Fragen zum Scripting
« Antwort #242 am: Juni 25, 2008, 21:33:53 Nachmittag »

das ganze geht mit variablen, dem wichtigsten in allen programmier- und scriptsprachen.
du musst einfach die information setzen, dass das item schon benutzt wurde.

Code: (text) [Auswählen]
  1. on:use {
  2.   if (playergotitem(806)>) {
  3.     if ($alreadyfound==1) { msg "Das geht nicht mehr!",3; skip; }
  4.     find 811;
  5.     $alreadyfound=1;
  6.   }
  7. }

erklärung: da beim ersten durchlauf die variable noch nicht gesetzt ist, hat sie nicht den wert 1 (sondern 0). deshalb wird die klammer nicht ausgeführt, sondern das, was dahinter steht: der spieler "findet" ein item 811 und die variable wird gesetzt.
beim nächsten benutzen besteht die variable ja schon und hat den wert 1. daher wird die klammer ausgeführt. durch das skip; wird das skript abgebrochen, der rest wird nicht mehr ausgeführt (geparst).
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert
Keine Signatur. Klickt trotzdem bitte auf diesen Link<br>
Bitte wendet euch mit S2Ext an McLeaf, nicht an mich!

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
Re: Fragen zum Scripting
« Antwort #243 am: Juni 25, 2008, 21:46:32 Nachmittag »

Danke! Funkt perfekt!
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
Re: Fragen zum Scripting
« Antwort #244 am: Juni 26, 2008, 13:27:11 Nachmittag »

ich hab noch ne Frage, ich wolt nen Dialog machen:

Code: (text) [Auswählen]
  1. on:use {
  2.  dialogue "3",3
  3. }
  4.  

es kommt aber nur ein Dialogfenster, wo nichts drinnen steht. Der Textcontainer hat die ID 3, aber ich bin mir nicht sicher, ob ich bei "Startseite" etwas bestimmtes reinschreiben muss, hab gelesen dass das dann nur oben stehen soll. Oder muss ich im Textcontainer Text reinschreiben, was die "Startseite" ist? }:?

Wenn ich es ohne Textcontainer versuche, also mit title= und so weiter, krieg ich beim Testen ne Fehlermeldung, das Parameter größer als 0 sein muss(???) und Stranded stürzt ab. ;(
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

banane

  • Newbie
  • *
  • Beiträge: 290
    • http://www.eliswebspace.de.vu
Re: Fragen zum Scripting
« Antwort #245 am: Juni 26, 2008, 23:15:30 Nachmittag »

dialogue funzt nur mit dem
page=blub
title=bläb
gedöhns... da musst du dann halt als startseite blub angeben (wegen page=blub)

wenn du einfach einen textcontainer mit reinem text benutzen willst, dann probier mal den befehl [s2s:2w8wjmee]msgbox[/s2s:2w8wjmee]. Der sieht für den Spieler genauso aus, allerdings ist er für einseitige Dialoge oft praktischer.
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert
Keine Signatur. Klickt trotzdem bitte auf diesen Link<br>
Bitte wendet euch mit S2Ext an McLeaf, nicht an mich!

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
Re: Fragen zum Scripting
« Antwort #246 am: Juni 27, 2008, 07:03:41 Vormittag »

Danke! Den Befehl msgbox hatte ich ganz übersehen, klapt aber ohne Probleme. Beim Dialouge bekomme ich immer eine Fehlermeldung
"Parameter must be grater than 0" obwohl ich den Script so mache, wie es auf mehreren Seiten gezeigt wird. Meine Frage aber; kann man die msgbox auch mit buttons bestücken, die auf verschiedene Seiten gehen? Dann würde ich den dialouge eh nicht brauchen! :hooray:
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

banane

  • Newbie
  • *
  • Beiträge: 290
    • http://www.eliswebspace.de.vu
Re: Fragen zum Scripting
« Antwort #247 am: Juni 27, 2008, 12:23:51 Nachmittag »

du kannst mit [s2s:23cs1780]button[/s2s:23cs1780] buttons machen, die neue msgboxen aufrufen.
poste doch mal dein dialogue script hier, dann können wir dir eher helfen ;)
[s2s:23cs1780]dialogue[/s2s:23cs1780] ist nämlich letztendlich einfacher für mehrere seiten (und platzsparender)
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert
Keine Signatur. Klickt trotzdem bitte auf diesen Link<br>
Bitte wendet euch mit S2Ext an McLeaf, nicht an mich!

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
Re: Fragen zum Scripting
« Antwort #248 am: Juni 27, 2008, 16:10:41 Nachmittag »

Muss man den Script, beim Button(wenn in der Vorschau steht ["Script"]) in "" schreiben? Denn die eckigen Klammern muss man ja weglassen. Ich habs zwar mit beiden probiert und es funktioniert nicht, aber ich wüsst halt gern was jetzt richtig ist(wäre) xD
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
Re: Fragen zum Scripting
« Antwort #249 am: Juni 27, 2008, 21:00:38 Nachmittag »

Ne andere Frage; ich wollte einen Tausch machen:

Code: (text) [Auswählen]
  1. on:use {
  2.   if (playergotitem(820)>19)
  3.      {find 30;}
  4.      {freestored "unit",1,820,20;}
  5. }
  6.  

es funktioniert, dass ich den Gegenstand nur kriege, wenn ich 20 Münzen hab, aber die Münzen verschwinden nicht.
Ich hab mir den Script ungefähr von einem früheren Foreneintrag abgeschaut, wo fleisch gegen einen Beutel getauscht wurde; da hiess es nach freestored
1,6,1
Ich kann mir denken, dass der 2. Wert die ID des Items ist und die 3. die Menge, aber was ist mit der ersten und funktioniert mein Script deshalb nicht?
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

dragoana

  • Newbie
  • *
  • Beiträge: 46
Re: Fragen zum Scripting
« Antwort #250 am: Juni 27, 2008, 21:21:04 Nachmittag »

Code: (text) [Auswählen]
  1. on:use {
  2.   if (playergotitem(820)>19) {
  3.        find 30;
  4.        freestored "unit",1,820,20;
  5.        }
  6. }

du musst nur die geschweiften Klammern etwas anders setzen  ;)
Alle Folgen einer Bedingung, wenn diese wahr ist, kommen zusammen in ein geschweiftes Klammernpaar.
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert
Schnapsidee von dragoana.

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
Re: Fragen zum Scripting
« Antwort #251 am: Juni 27, 2008, 21:50:04 Nachmittag »

AArrrghh... Immer diese blöden Klammern xD
Danke, jetzt funzt der script :hooray:
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
Re: Fragen zum Scripting
« Antwort #252 am: Juni 28, 2008, 09:22:13 Vormittag »

So, ich wollte den Tauschscript bei ner Einheit einbauen, was nicht funktioniert.

Code: (text) [Auswählen]
  1. on:use {  
  2. add "Was kaufen halt!";
  3. msgbox "Halt was kaufen";
  4. button, "Ne...", "8" ,"exit";
  5. button, "Jo", "8" , "if (playergotitem(820)>19) {
  6.          find 30;
  7.          freestored "unit",1,820,20";
  8.          }
  9. else {msg "Du hast zuwenig Geld!"}
  10. }
  11.  

Es wird nur der 2. button angezeigt und funktionieren tut er auch nicht. Vielleicht liegts an den Anführungszeichen, die sind ziemlich verwirrend...
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

banane

  • Newbie
  • *
  • Beiträge: 290
    • http://www.eliswebspace.de.vu
Re: Fragen zum Scripting
« Antwort #253 am: Juni 28, 2008, 13:42:34 Nachmittag »

Code: (text) [Auswählen]
  1. on:use {
  2.     $money="Du hast zuwenig Geld!";
  3.     add "Was kaufen halt!";
  4.     msgbox "Halt was kaufen";
  5.     button 0,"Ne...", 8 ,"closemenu;";
  6.     button 1,"Jo", 8 , "
  7.         if (playergotitem(820)>19) {
  8.            find 30;
  9.            freestored 2,1,820,20;
  10.          }else {
  11.            msg $money;
  12.          }";
  13. }

1. zahlen nie in ""
2. nach dem befehl selbst kein komma, nur zwischen den parametern
3. auf semikolon ( ; ) achten
4. wenn du " " in " " schreibst, kommt s2 damit nicht klar (daher auch "unit" durch 2 ersetzt)
5. [s2s:wisa21v9]exit[/s2s:wisa21v9] ist was ganz anderes (so weit bist du noch nicht ;) ), um eine msgbox oder i-ein menü zu schließen: [s2s:wisa21v9]closemenu[/s2s:wisa21v9]
6. [s2s:wisa21v9]button[/s2s:wisa21v9] benötigt den parameter ID, achte bitte auf die Befehlsreferenz
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert
Keine Signatur. Klickt trotzdem bitte auf diesen Link<br>
Bitte wendet euch mit S2Ext an McLeaf, nicht an mich!

dragoana

  • Newbie
  • *
  • Beiträge: 46
Re: Fragen zum Scripting
« Antwort #254 am: Juni 28, 2008, 14:17:37 Nachmittag »

Ich hab das Script mal getestet, dort kommen auch immer wieder Fehlermeldungen die man nicht wegbekommt. Vorallem mit dem msg $money gibts Probleme, weil die Variable Leerzeichen enthält. Ich schlag vor du benutzt statt msgbox den dialogue Befehl, dort kann man in ganze Seiten uneingeschränkt Scripts einfügen:
Code: (text) [Auswählen]
  1. page=kaufen
  2. title=Halt was kaufen
  3. text=start
  4. Was kaufen halt.
  5. text=end
  6. button=kaufen2,Ja
  7. button=action:close,Nee...
  8.  
  9. page=kaufen2
  10. title=Halt was kaufen
  11. script=start
  12. if(playergotitem(820)>19) {
  13.         find 30;
  14.         freestored "unit",1,820,20;
  15.     } else {
  16.         msg "Du hast nicht genug Geld";
  17.     }
  18.     closemenu;
  19. script=end
  20.  
Das obige Script kopierst du einfach in einen Textcontainer.
Die zweite Seite ist nur zur Scriptausführung da, sie wird sofort geschlossen bevor man sie sehen kann.
Und der Handelseinheit gibst du diesen kurzen Code:
Code: (text) [Auswählen]
  1. on:use {
  2. dialogue "kaufen",TEXTCONTAINER-ID;
  3. }
Und merke dir bananes Hinweise ;)
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert
Schnapsidee von dragoana.
Seiten: 1 ... 15 16 [17] 18 19 ... 47