PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Selbstgebauten Menü



Check5
21.10.2003, 09:16
Servus,hab wieder Fragen und zwar:
Ich hab ein eigen kreiertes Menü mit Common Events und hab eine extra Spalte für Zauber.Darunter auch ein Heilungszauber den man im gesamten Spiel benutzen kann (nicht nur im Kampfmenü).Nun meine Frage:
Wie schaffe ich es wenn man den Zauber im Spiel ,nicht im Kampfmenü(Standard KS),benützt das wenn die Magiepunkte leer sind man den Zauber auch nicht mehr benutzen kann sondern erst wieder die Mp´s auffüllen muss?

Ausserdem würde mich noch interessieren wie man in dem Menü ne MP,HP und Levelanzeige machen kann, und wie man ne Anzeige machen kann wieviel Gegenstände man im Gegenstadsmenü noch hat (z.B Gegengift)

Kann mir jemand helfen?:confused:

Schonmal Danke im vorraus.

Icetongue
21.10.2003, 18:34
AFAIK ist das ganze nur mit den beliebten Variablen möglich.:D

Da musst du einfach die Mp in einer Variable speichern, mit einer Fork abfragen und dann bestimmen, ob der Zauber gewirkt werden soll.

Bei den Items die Itemanzahl in eine Variable "packen" und mit Forks (und den richtigen Bildern;)) anzeigen.

IdS. Viel Erfolg noch.:)

Check5
21.10.2003, 22:40
Kannst du mir sagen wie ich das schaffe das die MP in ner Variable gespeichert werden.Ich blick bei den Variablen nämlich noch nicht ganz durch.Hab mir zwar schon 2 oder 3 Threads durchgelesen komm aber irgendwie nicht darauf was man mit Variablen alles anstellen kann.§tdumm

BenjaTheFlad
22.10.2003, 01:02
"change variable" auf der ersten seite der event commands anwählen die variable z.B: "Held Mp" nennen und unten neben "Hero" den Helden und daneben "MP" einstellen. Da siehst du dann auch die ganzen anderen Sachen, wie z.B. MP max, HP, Level und den ganzen anderen Rest.
Generell speicherst du Werte in Variablen so auch den Wert der aktuellen MP.

Check5
22.10.2003, 21:12
Hab ich probiert aber funktioniert nicht.
Kann mir jemand villeicht ne kleine Anleitung schreiben wies funktioniert.Ich will es praktisch so machen:
Der Held wird von einem Monster angegriffen und nach dem Kampf will er sich heilen (sagen wir dieser Zauber kostet 40 MP). Dann werden ihm die MP abgezogen und er kann sich dann wenn er sich wieder heilen will nicht mehr heilen.
Ich wäre euch wirklich dankbar wenn mir einer so eine Anleitung schreiben könntehttp://www.multimediaxis.de/images/smilies/old/sm_12.gif

bloody
22.10.2003, 21:22
also wenn ich das richtig verstanden hab müsste das so gehn :

also du machst change variable und fragst damit die MP des helden ab wenn du über 40 hast wir ddie variable -40 genommen fertig oda??

Check5
22.10.2003, 21:46
Ja so ungefähr.
Aber kann man das nich so machen das wenn der Held jetz n Level nach oben steigt(da hat er ja automatisch mehr MPs)das sich die Variable dann mit verändert?Ich wills eigentlich so machen wie im Standart Menü ,nur das eben das Menü anders aussieht.

melior
22.10.2003, 21:53
wenn die MP in die variable gespeichert werden, werden dafür immer die werte der database benutzt. wenn dein held um ein level aufsteigt, musst du nur die variable wieder auf die MP setzen. so hat sie immer den richtigen wert.

DarkSully
22.10.2003, 21:55
Lass einfach die MP's bzw. die LP's mit jedem Menü Aufruf neu ermitteln und speichern.

Check5
22.10.2003, 22:10
Ja gut Danke dafür.
Aber jetzt hab ich immer noch keinen Plan was ich eingeben muss das wenn die MP leer sind man sie erst wieder auffüllen muss das man wieder Zaubern kann.Kann mir da jemand ne kleine Anleitung schreiben????

melior
23.10.2003, 01:37
beim nutzen des zaubers machst du ne fork, die überprüft, ob die variable [MP] über (above) 40 ist. in der fork ziehst du deinem helden die 40 MP ab und setzt die variable nochmal auf den wert. dasselbe machst du mit den hp, nur addierst du da irgendwas zu den HP.
beim else case kannst ja ne message oder so machen, dass du zu wenig MP hast.
um die MP aufzufüllen, machst du es einfach wie bei den HP. nen wert zu den MP des helden addieren und dann die variable aktualisieren

Check5
23.10.2003, 03:25
Es funktioniert immer noch nicht.
Also ich habe es jetzt so gemacht:
Als erstes hab ich ein common Event gemacht das mit einen Switch eigeschaltet wird und dann als Pararell Process läuft.Dort hab ich als Befehl
change Variable: one:Held MP, set ,und Hero Max. Mp
eingegeben.
Dann hab ich im Menü bei dem Zauber eine Fork gemacht in der
Variable: Held MP above 20 (40 MP hat derHeld) steht.

Und dann hab ich darunter change Variable: one:Held MP , - , set:40 eingegeben

und unter else case habe ich ne Message "Du hast nicht genug MP" geschrieben.
Und immer wenn ich nun den Zauber benutze heißt es "Du hast nicht genug MP"

Was habe ich falsch gemacht???????:confused:

bloody
23.10.2003, 03:34
hmm vieleicht hmm also ich würde nicht above nehmen sonder höher,gleciha denn wenn man genau die anzahl von mp hat muss man es ja auch können sonst würsst ich nix hmm bin auch zu dumm ich überlege aber weiter^^

Check5
23.10.2003, 03:40
Ne funktioniert auch nicht,sorry
Kann es villeicht sein das mein Maker auf Variablen nicht anspringt sondern sie eventuell ignoriert?
Obwohl, dann würde ja auch das Menü nicht funktionieren...
Ich weiss echt nicht was ich sonst noch machen soll...:\

melior
23.10.2003, 03:44
wozu ein common event verschwenden, kannste doch gleich in die fork machen :)

ok, nochmal, ausführlicher:
die variable muss auf den MP wert gesetzt werden, nicht auf den Max MP wert (der normale is weiter unten in der liste).

als nächstes kommt die fork:

Fork: Var[MP] above 40
hier dann dem helden 40 mp entziehen und den wert wie oben beschrieben aktualisieren
dann die HP wieder vergrößern und evtl. die variable dafür aktualisieren (falls du die HP anzeigst)

Els Case
hier die message
end case


above heißt so viel wie "größer gleich" ;)

bloody
23.10.2003, 03:49
asooo sach das doch^^
hab ja die deutsche version von daher^^
hmm wenns nach meliors anleitung net klappt dann klappt garnix^^

Check5
23.10.2003, 04:01
Ja gut, und wie aktualisiere ich die MP?
Mit der gleichen Variable oder wie?Also praktisch das ich diselbe Variable auswähle und wieder auf set und Hero MP stelle.

Check5
23.10.2003, 04:06
hab das von Melior auch ausprob. und es funktioniert auch nicht....

melior
23.10.2003, 04:16
genau, einfach die selbe variable wieder auf den wert der MP setzen.

eigentlich sollte das schon gehn... ich machs ja auch nich wirklich viel anders bei meinen sachen

poste doch mal den genauen code, dann können wir den fehler besser finden



hmm wenns nach meliors anleitung net klappt dann klappt garnix^^
halt ich fürn gerücht ^^°

Check5
23.10.2003, 04:21
Hab ich weiter oben schon ausser das ich das Max Mp auf MP gesetzt hab

melior
23.10.2003, 04:29
bei mir funzt das aber...

ok, nochmal ganz genau:

Cange Variable: [MP Besitz] Set Hero MP (den held halt auswählen)

Fork: Var[MP Besitz] above 40
Change MP:*derHeld* MP 40 decrease
Cange Variable: [MP Besitz] Set Hero MP (den held halt auswählen)
___
zum test hab ich hier ne message hingemacht...
Show Message: bla...

Else Case
Show Message: bla... blabla...
End Case


bei mir kam zuerst bla..., dann bla... blabla... (tolle texte... ¬_¬)

hast du wirklich über 40 MP?

bloody
23.10.2003, 04:32
was genau klappt denn nicht?

Racerzero
23.10.2003, 10:12
hmmm schwer ist es doch eigentlich net. man muss nur von anfang an direkt festlegen wieviel mp der held hat. nehmen wir mal an er hat alles voll (also z.b. 100 MP-Punkte bei level 1). diesen wert kannst du ja in einer variable speichern. zudem kannst du einen festgelegten wert für einen zauber speichern. z.B. :

Variable : Heilzauber
Set : 13

(die 13 steht in dem Falle für 13 MP die der Zauber abziehen soll)

wenn du nun den heilzauber benutzt sollen ja von den 100 MP´s 13 abgezogen werden , was so geht :

Change Variable
{
Variable : Gesamt MP
Set : -
Variable : Heilzauber
}

hier wird nun von der Variable "Gesamt MP" die "Heilzauber" Variable abgezogen. also : 100 MP - 13 MP = 87 MP

wenn du nun abfragen willst ob du den heilzauber noch benutzen kannst sieht das so aus :

wenn : Variable "Gesamt MP" below "13"
dann : irgend ne message oder so

(für wenn/dann wird eine fork eingesetzt wo du die bedingungen reinschreibst)

-------------------------------------------------------

wenn sich die maximale mp zahl durch einen levelanstieg ändern soll musst du vorher den levelanstieg festlegen. kannste dann glaube ich mit ner fork abfragen :

wenn : Hero "X" above (für X einen Wert von 1-50 bzw. 1-99)
dann :

Change Variable
{
Variable : Gesamt MP
Set : +
(hier nun entweder eine festgespeicherte Variable z.B. Level 2 MP mit dem Wert 5 oder den Wert direkt eingeben )
}

hier bekommt die maximal mp variable 5 hinzuaddiert weil der held auf level 2 gestiegen ist. (wenn das mit der fork oben falsch ist gehts auch mit variablen)

nun hat Gesamt MP wieder den richtigen Wert. an den abfragen mit den zaubern brauchst du nichts ändern
---------------------------------------------------------

mp regenerierungstränke kannste so machen :

Variable : Manatrank , Set : 25

Change Variable
{
Variable Gesamt MP
Set : +
Variable Manatrank
}

hier bekommst du bei benutzung des manatrankes 25 mp punkte hinzugeschrieben.

an der stelle würde ich aber aufpassen , denn was wäre wenn dein held 90 mp punkte hat und du den trank der 25 drauftut benutzt. dann würdest du auf einen wert von 115 kommen der deinen levelrahmen aber sprengt was ja net sein soll.

Definitionen und Zuweisungen:

VMP : Volle MP / 100 (maximal erreichbarer Wert)
GMP : Ganze MÜ / 80 (nach Verbrauch z.B. nur noch 80 MP da)
D : Differenz / 20 (weil 100-80 = 20)
MT1 : Manatrank 1 / 25 (festgelegter Wert)
MT2 : Manatrank 2 / MT1 (nimmt wert von mt1 an , zwischenspeicher)
MT3 : Manatrank 3 / nach den formeln = 20

Formeln :

VMP = GMP + D / VMP = 80 + 20 = 100 (VMP)
D = VMP - GMP / D = 100 - 80 = 20 (D)
GMP = VMP - D / GMP = 100 - 20 = 80 (GMP)

----

MT2 = MT1 / 25 (MT2) = 25
MT2 = MT2 - D / 25 (MT2) = 25 - 20 = 5
MT3 = MT1 - MT2 / 20
GMP = GMP + MT3 / 80 = 80 + 20 = 100

so habe etwas gebraucht um die formeln richtig zu lösen...puh. glaube net das jetzt hier irgendeiner versteht was ich meine ;) naja bis auf das letzte hier sollte aber alles klar sein oder ?
------------------------------------

Die Sache mit dem Heilzauber sollte so gehen. So wie ich das sehe brauchst immer zwei Variablen. z.B. VHP ( Volle HP ) und GHP ( Gesamte HP) was so aussieht im Spiel :

80/100 HP

Die 80 ist dabei GHP , und die 100 (maximal Wert) ist VHP bei mir. Dasselbe mit dem Mana.

40/40 MP

40 ist GMP , und die andere 40 VMP.

nun musst du abfragen ob du noch genug MP zur nutzung frei hast. das geht am besten mit der fork :

wenn : Variable : GMP / bigger / HZ1 ( Heilzauber 1)
dann : Variable : GHP / + / Wert (beachte hierbei die Begrenzung !)
Variable : GMP / - / HZ1
sonst: Message : Zu wenig Mana

siehe dabei meinen unteren Post denn der gilt ja auch für die HP. naja ist eben ne grobe darstellung aber probier da mal rum

Racerzero
23.10.2003, 11:51
habe das ganze mal geschrieben und siehe da : die formeln gehen alle auf und die ergebnisse stimmen auch. die bezeichnungen der variablen werden im post davor nochmal erklärt. habe es seperat gepostet damit man es unterscheiden kann

Variable : VMP / Set : 100
Variable : VMP2 / Set : VMP
Variable : GMP / Set : 90 (beispiel , wenn 10 mp fehlen)
Variable : VMP2 / Set : - / Variable : GMP
Variable : D / Set : VMP2
Fork : Wenn du einen Trank benutzt
{
Variable : MTAuswahl / Set : 1
}

Fork : Variable : MTAuswahl = 1
{
Variable : MT1 / Set : 25 (25 steht für die MP zahl die es verbr.)
Variable : MT2 / Set : 25
Variable : MT3 / Set : 25
Fork : Variable : MT1 > D
{
Variable : MT2 / Set : - / Variable : D
Variable : MT3 / Set : - / Variable : MT2
Variable : GMP / Set : + / Variable : MT3
}
Fork : Variable : MT1 < D
{
Variable : GMP / Set : + / Variable : MT1
}
}

bloody
24.10.2003, 02:08
also wenn du das nicht verstehst solltest du erstmal dich mit den grundlagen des makers beschäftigen den das ist shcon eine etwas höhere liga nen eigenes menü;)

Racerzero
24.10.2003, 04:09
jo da kann ich bloody nur zustimmen. ich habe gerade mein eigenes vom grundaufbau her fertig geschrieben sodass man den cursor bewegen kann und ne eingrenzung bei den x und y koordinaten gemacht. man ist das ne arbeit und wehe ein wert ist falsch , dann läuft garnichts....puh.....

Check5
24.10.2003, 08:28
So also bin nich früher dazu gekommen zu posten.
Also jetz hats funktioniert.
Keine ahnung warum gestern nich aber ich schätze mal weil ich die Variable nach dem Zauber nich abgefragt hab(keine Ahnung warums deshalb nich funktioniert hat aber egal...).
Also vielen Dank an euch alle das ihr euch so bemüht habt das es funktioniert und ich denke das Spiel wird dadurch sehr gut(falls es irgendwann mal fertig wird :D )
Und das von Racerzero hab ich verstanden, habs mir aber zur Sicherheit mal ins Word kopiert.
Also:Ein großes Lob an euch alle.
Bis demnächst mal wieder (beim nächsten Problem :D )

Servus... ;)

Racerzero
24.10.2003, 15:47
freut mich das es doch verständlich war ;) bei den ganzen formeln etc.. *g*