FRAGE an alle wegen SCRIPTS

Das Mitmach-Projekt aus dem Maniac-Mansion-Universum.
Benutzeravatar
ManiakFreak
Tastatursteuerer
Tastatursteuerer
Beiträge: 510
Registriert: 01.06.2005, 16:13
Wohnort: Thun (CH)
Kontaktdaten:

Beitrag von ManiakFreak »

Tentakel hat geschrieben:if (GetGlobalInt(31) == 1) {
DisplaySpeech(GetPlayerCharacter(), "Da drin war ein Nagel");
AddInventory(20);
SetGlobalInt(31, 2);
}


DisplaySpeech(GetPlayerCharcter(), "Mehr is nich drin.");
Vergleich' es mal mit dem von mir geposteten Script.

Du hast "else" vergessen.
Nein, Karussell fahren brauche ich nicht, mir wird schon allein von der Erdrotation schlecht.
Benutzeravatar
Tentakel
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 107
Registriert: 06.10.2005, 18:15
Wohnort: Weißenborn
Kontaktdaten:

-

Beitrag von Tentakel »

OK danke. Habs. Geht. Kann ich bitte noch eine Info dazu haben,
wie man mehrere Figuren in siein Game einbauen kann???

Wär nett. Danke und Im vorraus
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Mehr Info.

Mehr Figuren
- als spielbare Charaktere?
- als Statisten?
- neue Figuren, die nicht im Pack sind?
Use gopher repellent on funny little man
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

khrismuc hat geschrieben:- als Statisten?
Wie kommst du auf Statisten? Könnte ja auch jemand sein, der im ganzen Spiel rumrennt
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge

Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.

Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Ich meinte NPCs.
Use gopher repellent on funny little man
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

logisch. Aber das müssen nicht immer Statisten sein. Praktisch kann jeder Charakter im Spiel eine Hauptrolle spielen.

Mir ist klar was du meinst, aber Tentakel könnte das missverstehen
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge

Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.

Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Benutzeravatar
Tentakel
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 107
Registriert: 06.10.2005, 18:15
Wohnort: Weißenborn
Kontaktdaten:

Beitrag von Tentakel »

Ich meine als spielbare Charctere. Konkret:

in epi 11 gab es sowas z.b. an der seite ist ein bild (oder mehrere) auf denen ein Char abgebildet ist. sowas will ich auch.
aber jeder soll seine eigenen Gegenst. haben und seine fähigkeiten zb telefon reparieren von Jeff = ja
von Syd = nein


danke im vorraus tentakel(alias grün)
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Bilder an der Seite:
Das sind zusätzliche GUI-Buttons, die Du zum MAIN-GUI hinzufügen musst. (Du könntest auch ein neues GUI nehmen, der Übersichtlichkeit halber.)

Bei einem Klick musst Du den spielbaren Charakter ändern, außerdem müssen die Buttons neu angepasst werden.
Etwa so:

Code: Alles auswählen

on_interface_click(...) {
Button *mybutton;
...
  if (button==11(?)) {
    mybutton=gMAIN.Controls[11].AsButton;
    if (player==cMichael) {
      cJeff.SetAsPlayer();
      mybutton.NormalGraphic=125;   // Button-Bild ändern
    }
    else {
      cMichael.SetAsPlayer();
      mybutton.NormalGraphic=124;   // Button-Bild ändern
    }
  }
Das Inventar wird von AGS automatisch für jeden Charakter getrennt verwaltet, da muss nix extra gemacht werden.

Das jeder unterschiedliche Fähigkeiten hat, ist einfach zu machen:

Code: Alles auswählen

if (UsedAction()==A_USE) {
  ...
  if (player==cMichael) {
    player.Say("Ich kann nicht surfen.");
  }
  else {
    //  Jeff geht surfen
  }
}
Wenn Du jetzt 10 neue Fragen zu meiner Erklärung hast, solltest Du vielleicht deine Ziele etwas runterstecken. Ist nicht böse gemeint, aber Du bist erst 12, außerdem ist AGS Neuland für Dich. Wir haben alle mal klein angefangen, aber das, was Du möchtest, verlangt eine gute Kenntnis der Scriptsprache und einigermaßen gute Programmierkenntnisse. Ich weiß nicht, ob Du die hast, wenn doch, helf ich Dir gerne weiter, aber ich werde Dir keine Schritt-für-Schritt-Anleitung für jeden kleinen Stolperstein liefern.
Use gopher repellent on funny little man
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

khrismuc hat geschrieben:

Code: Alles auswählen

on_interface_click(...) {
Button *mybutton;
...
  if (button==11(?)) {
    mybutton=gMAIN.Controls[11].AsButton;
    if (player==cMichael) {
      cJeff.SetAsPlayer(); // Siehe unten
      mybutton.NormalGraphic=125;   // Button-Bild ändern
    }
    else {
      cMichael.SetAsPlayer(); // Siehe unten
      mybutton.NormalGraphic=124;   // Button-Bild ändern
    }
  }
Das Pack hat eine Funktion für das Wechseln zwischen den Charakteren. Wie sie heißt, habe ich vergessen, aber ich meine, es war ChangePlayerCharacter
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge

Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.

Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Benutzeravatar
fireorange
Adventure-Treff
Adventure-Treff
Beiträge: 10618
Registriert: 01.05.2005, 18:03

Beitrag von fireorange »

[ZENSIERT] hat geschrieben:Wie sie heißt, habe ich vergessen, aber ich meine, es war ChangePlayerCharacter
yep, so heißt sie ganz sicher. :wink:
Mein Animal-Crossing-Tagebuch bei DKSN.

Entwicklerin von Twine-Stories sowie Mini-Adventures aus der Interactive Short Collection. -> fireorange bei itch.io!

Bäckerin von: Beyond the Edge of Owlsgard, A Twisted Tale, Beyond Shadowgate, Twilight Oracle.

Autorin von Minotaurus in den Sternen und weiteren Büchern (tredition, amazon etc).
Gesammelte Gedichte: frei zugängliches Archiv.
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Die Funktion heisst in AGS 2.62 SetPlayerCharacter(), im Pack gibt es eine extra Funktion, nämlich SetPlayer(), die man stattdessen benutzen sollte.
Der Unterschied ist lediglich, dass LFs Funktion die Charaktere (non)clickable macht und zum anderen Char scrollt, wenn beide im gleichen Raum sind.

Um die GUI-Buttons muss man sich aber trotzdem selbst kümmern.
Somit müsste bei meinem Code statt cXXX.SetAsPlayer(); halt SetPlayer(XXX); stehen.

Orange: ...äh? Hör einfach mit dem verdammten Gespamme auf, ok? Des geht mir so auf den Sack.
Hier ein link extra für dich: http://www.webchat.de
Use gopher repellent on funny little man
Benutzeravatar
fireorange
Adventure-Treff
Adventure-Treff
Beiträge: 10618
Registriert: 01.05.2005, 18:03

Beitrag von fireorange »

Hä? Sorry, aber wieso Gespamme? Ich hab lediglich bestätigt, dass der Code so heißt. :roll:
Mein Animal-Crossing-Tagebuch bei DKSN.

Entwicklerin von Twine-Stories sowie Mini-Adventures aus der Interactive Short Collection. -> fireorange bei itch.io!

Bäckerin von: Beyond the Edge of Owlsgard, A Twisted Tale, Beyond Shadowgate, Twilight Oracle.

Autorin von Minotaurus in den Sternen und weiteren Büchern (tredition, amazon etc).
Gesammelte Gedichte: frei zugängliches Archiv.
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Diese Funktion gibt es aber nicht. Weder in AGS noch im Pack.
Siehe Signatur.
Und du spammst wie ein Weltmeister. Überall. Bist nicht der Einzige, schon klar, aber einer der Oberspammer.
Use gopher repellent on funny little man
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

SetPlayer, das war's!

Soll heißen, khrismucs Code müsste (sollte besser) so aussehen:

Code: Alles auswählen

on_interface_click(...) { 
Button *mybutton; 
... 
  if (button==11(?)) { 
    mybutton=gMAIN.Controls[11].AsButton; 
    if (player==cMichael) { 
      SetPlayer(JEFF);
      mybutton.NormalGraphic=125;   // Button-Bild ändern 
    } 
    else { 
      SetPlayer(MICHAEL);
      mybutton.NormalGraphic=124;   // Button-Bild ändern 
    } 
  }
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge

Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.

Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Benutzeravatar
Tentakel
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 107
Registriert: 06.10.2005, 18:15
Wohnort: Weißenborn
Kontaktdaten:

Beitrag von Tentakel »

Danke für euer great Posting. und


@[zensiert]
danke für deine Besorgniss, aber wer was
lernen will, muss sich seine ziele eben hoch
setzen. hab duch nen zufall mit 10 schon
mit turbo pascal angefangen.
genial bin ich nich aber wennn du mir deine
mail gibst, schick ich dir ein paar meiner kleinen
progs

p.s. mybutton ist doch der mit dem bild vom char drauf oder

und das script für das interaction auf den butten click oder...
Antworten