Seite 2 von 3
Verfasst: 09.10.2005, 18:47
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.
-
Verfasst: 10.10.2005, 19:14
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
Verfasst: 10.10.2005, 19:23
von KhrisMUC
Mehr Info.
Mehr Figuren
- als spielbare Charaktere?
- als Statisten?
- neue Figuren, die nicht im Pack sind?
Verfasst: 10.10.2005, 19:32
von [ZENSIERT]
khrismuc hat geschrieben:- als Statisten?
Wie kommst du auf Statisten? Könnte ja auch jemand sein, der im ganzen Spiel rumrennt
Verfasst: 10.10.2005, 20:25
von KhrisMUC
Ich meinte NPCs.
Verfasst: 10.10.2005, 21:52
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
Verfasst: 13.10.2005, 19:53
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)
Verfasst: 13.10.2005, 21:16
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.
Verfasst: 13.10.2005, 21:20
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
Verfasst: 13.10.2005, 21:57
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.
Verfasst: 13.10.2005, 22:33
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
Verfasst: 13.10.2005, 22:59
von fireorange
Hä? Sorry, aber wieso Gespamme? Ich hab lediglich bestätigt, dass der Code so heißt.
Verfasst: 13.10.2005, 23:08
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.
Verfasst: 14.10.2005, 15:18
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
}
}
Verfasst: 24.10.2005, 19:14
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...