Lieber Besucher, herzlich willkommen bei: RPG Studio - Make your World real. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Mittwoch, 20. August 2014, 22:25

Automatisches Anordnen von Symbolen via X,Y Variable

Tag zusammen.

Bin momentan an einem kleinen Problem und komme einfach nicht darauf wie ich es logisch lösen soll.
in meinem Spiel gibt es ein selbstgemachtes HUD (noch nicht fertig aber etwas existiert bisher)
in diesem HUD soll dem Spieler angezeigt werden wenn ein Buff oder Debuff auf ihm lastet. Dies passiert via show Picture und einem Icongroßen Bild.
Das ist auch an sich überhaupt kein Problem, die eigentliche Schwierigkeit besteht für mich aktuell darin die Bilder automatisch anzuordnen Sprich Wenn z.B.
2 Debuffs auf dem Spieler lasten nennen wir sie hier mal "Gebrechlichkeit" und "Schmerzen"
dass dann in diesem Beispiel Gebrechlichkeit auf der Position xy und schmerzen direkt daneben angezeigt wird.
Und falls Gebrechlichkeit vergeht und Schmerzen bleibt diese selbstständig eins aufrücken.

________
Meine Ideen dazu waren bisher jeden Debuff/Buff mit einer Prioritätsvariable auszustatten und dann wieder ein viel zu kompliziertes CE zu erstellen das diese zuordnet allerdings sieht dieser Gedanke nicht Erfolgversprechend aus.

_______
Wichtig wäre hierbei noch zu erwähnen das die Buffs nicht wie "Blink" oder "Resist" unter Status eingetragen sind sondern es sich hierbei um einzelne CE's handelt.


vielen Dank im Vorraus
Cryztal
Lg Cryztal

Mitsch93

Drachentöter

Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.

  • Nachricht senden

2

Donnerstag, 21. August 2014, 16:07

Wie ich das verstehe erstellst du das KS komplett mit Events, also
muss es ja auch für jeden Charakter eine Debuff- Obergrenze geben, oder?
Sagen wir jeder kann maximal 5 Debuffs erhalten.
In diesem Beispiel gibt es auch 5 versch. Debuffs

Ich würde eine dynamische Bildanzeige erstellen - für jeden Debuff eine.
Jedem Debuff wird eine Variable zugeordnet.

z.B. folgende 5 Variablen für dieses Beispiel.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
Charakter[1]_Debuff[1]
Charakter[1]_Debuff[2]
Charakter[1]_Debuff[3]
Charakter[1]_Debuff[4]
Charakter[1]_Debuff[5]
Charakter[1]_Debuff[5]
 
Wer=0 :Kein Debuff
Wert=1 :Tot
Wert=2 :Gelähmt
Wert=3 :Geblendet
Wert=4 :Verwundet
Wert=5 :SuperSayajin



Nun würde ich eine "Festerklasse" - besser gesagt Fensterevent - initinieren, das für das Anzeigen des Debuffs zuständig ist.
Zuerst wird überprüft, ob es Buffs zum "Nachrücken gibt" danach wird mit der Anzeige der Debuffs weitergemacht.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#Spieler 1
Wenn Charakter[1]_Debuff[1] == 0
	#Also Spieler hat keinen Debuff, also nachsehen, ob Debuff 2 existiert.
	#Wenn ja muss Debuff1 den Wert von Debuff2 annehmen und dann 
	#Debuff2 auf Null gesetzt werden.
   Wenn Charakter[1]_Debuff[2] == 1
  	Charakter[1]_Debuff[1]=Charakter[1]_Debuff[2]   
  	Charakter[1]_Debuff[2]=0
   Ansonsten
  	Wenn Charakter[1]_Debuff[2] == 1
     	Charakter[1]_Debuff[1]=Charakter[1]_Debuff[2]   
 	    Charakter[1]_Debuff[2]=0
      Ansonsten
  	... unw.
End
#Debuff 2
Wenn Charakter[1]_Debuff[2] == 0
   Wenn Charakter[1]_Debuff[3] == 1
  	Charakter[1]_Debuff[2]=Charakter[1]_Debuff[3]   
  	Charakter[1]_Debuff[3]=0
   Ansonsten
  	Wenn Charakter[1]_Debuff[2] == 2
     	Charakter[1]_Debuff[2]=Charakter[1]_Debuff[3]   
 	    Charakter[1]_Debuff[2]=0
      Ansonsten
  	... usw.
Ende
 
 
#Debuffs anzeigen
Wenn Charakter[1]_Debuff[1]==0
   Lösche Bild 1
End
Wenn Charakter[1]_Debuff[1]==1
   Zeige Bild 1 "Tot"
End
Wenn Charakter[1]_Debuff[1]==2
   Zeige Bild 1 "Gelähmt"
End
usw.


Hoffe du hast, es soweit verstanden. Wenns noch Fragen gibt, melde dich einfach.

3

Montag, 25. August 2014, 18:04

Hi Mitsch,

danke für die schnelle Hilfe erstmal.
Ich bin mir leider nicht ganz sicher ob ich das jetzt verstanden habe.
Ich werde demnächst mal probieren es so umzusetzen wie ich es jetzt gedeutet habe.
Falls dann noch Fragen bestehen würde ich sie einfach noch einmal äußern :)

lg Cryztal
Lg Cryztal

Mitsch93

Drachentöter

Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.

  • Nachricht senden

4

Montag, 1. September 2014, 10:51

Habe gerade mal bisschen gebastelt.
Als Grundvorstellung sollte es reichen.

Kurze Erklärung:
Es gibt 5 verschiedene Debuffs - momentan können noch Debuffs doppelt
auftreten, aber das ist ja durch paar Bedingungen schnell gelöst.

Die Debuffs haben folgende Variablenbezeichnungen:
Charakter[1]_Debuff[1]
Charakter[1]_Debuff[2]
Charakter[1]_Debuff[3]
Charakter[1]_Debuff[4]
Charakter[1]_Debuff[5]
Also sozusagen 5 Slots für die 5 verschiedenen Debuffs, damit jeder mindestens einmal auftreten kann.

Jeder Debuff kann einen Wert von 0 bis 5 annehmen:
0:=keiner vorhanden
1:=tot
2:=vergiftet
3:=blind
4:=schweigen
5:=betäubt

Die Debuffs werden dann am oberen linken Bildschirmrand angezeigt.
Ganz links befindet sich Charakter[1]_Debuff[1], ganz rechts Charakter[1]_Debuff[5].

Zur Testeingabe:
Zuerst gibt man den Debuff Slot an (also 1-5). Danach den Wert, den er anehmen soll (von 0:=kein Debuff/löschen bis 5:=betäubt).
Danach werden 3 CEs aufgerufen, die den Rest regeln.

Wenn du nun z.B. am Anfang alle Debuffs auf Null hast und dann Debuff 2 auf irgendeinen Wert setzt, werden sich die Debuffs
automatisch wie eine List verhalten - also da Debuff 1 noch nicht belegt ist mit einem Wert, wird dieser den eingegebenen Wert annehmen
und nicht Debuff 2.



Wenn du noch Fragen oder Editierwünsche hast, einfach melden.



Edit
Version 2:
Ich habe mal auf die schnelle folgende Änderungern hinzugefügt:
- Eingabe stark vereinfacht
- Wenn "Tot" hinzugefügt wird, verschwinden alle anderen Debuffs.
- Solange "Tot" auf Charakter wirkt, kann kein neuer Debuff hinzugefügt werden
- Debuffs können nicht mehrfach auf Charakter wirken d.h. jeder Debuff kann nur 1x auf dem Charakter sein.


»Mitsch93« hat folgende Dateien angehängt:
  • Debuffs.exe (272,94 kB - 6 mal heruntergeladen - zuletzt: 15. Oktober 2016, 06:23)
  • DebuffsV2.exe (274,23 kB - 8 mal heruntergeladen - zuletzt: 15. Oktober 2016, 06:23)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mitsch93« (1. September 2014, 10:50)


5

Mittwoch, 3. September 2014, 19:05

Ja habs gerade angetestet und es funktioniert wie erwünscht. Dickes Danke an dich.
:)
Lg Cryztal

6

Sonntag, 19. Juli 2015, 12:19

Mir ist neulich zu diesem Thema noch eine Idee gekommen wie man das ganze evtl. Kürzen könnte. Wenn man statt der Prioritätenabfrage bloß die Belegung der slots prüft würde dann das system so wie ich das sehe die letzten Schritte selbstständig machen oder? Also wenn ich einfach Abfrage ob variable[slot1] <= 0
If true:
Slot1 = keiner vorhanden
If false:
Is variable[slot1] <= 1
If true:
Slot1 = Tod
Usw.
(Bei slot2 muss man dann natürlich abfragen ob slot1 einen niedrigeren wert besitzt )
Dann wäre man doch theoretisch nach oben hin nicht mehr limitiert auf seine debuffs und könnte es auf eine Abfrage beschränken.

Bin mir da aber nicht sicher und wollte deshalb nochmal nachfragen ob das was ich sage stimmt oder ich Schwachsinn verzapfe
Lg Cryztal

7

Montag, 20. Juli 2015, 00:00

Die Limitierung kommt daher, das Du nicht unendlich SpielVariablen zur Verfügung hast (irgendwann lohnt es sich dann auf Skripte umzusteigen) und es sich empfiehlt diese Variablen hintereinander liegen zu haben, um mit einem loop da einfach durchlaufen zu können.

Verwendete Tags

rpg maker xp

Social Bookmarks