• Anmelden

1

Montag, 6. Juni 2011, 01:30

KampfSystem++

Hallo Leute!

Habe diese Anfrage bereits woanders gestellt, aber leider keine Hilfe bekommen ;(



Ich arbeite gerade meiner Meinung nach an einem grossen Projekt. Leider
bin ich kein Scriptprofi, wie manche das von Euch sind. Daher
hoffe ich, dass jemand mir helfen kann.



Ich hätte gerne ein bestimmtes Kampfsystem. Nichts besonderes. Es soll
ähnlich wie das von FF6 sein (oh, nicht schon wieder....), aber nur
optisch und mit viel weniger Aufwand. Es soll nicht nur mir helfen,
sondern auch vielen anderen, die mit Scripten nichts am Hut haben und einfach mal ein anderes KS haben möchten, als das verstaubte normale.
Ich
hoffe, dass ich es ordentlich beschreiben kann.



Dann mal los:



1. Auf dem Kampfbildschirm sollen die Charaktere rechts, mit dem Blick nach links stehen. Normale Charas mit Laufanimation.

2. Beim Angriff, Item benutzen oder auch heilen, sollen sie so in etwa
die Mitte des Kampfbildschirmes laufen (vieleicht noch kurz aufleuchten
bei der Aktion*), nach der Aktion können sie meinetwegen auch zurück auf
ihren Platz hüpfen.

3. Die Kampfanimationen auf dem Gegner können die gewönnlichen bleiben
(Schwert, Schlag, Bogen etc...). Die Charaktere brauchen auch keine
eigenen Schwertschwunganimationen oder so. *Ein kurzes Aufleuchten des
Charakters, währen eine Standartanimation auf dem Feind erfolgt.

4. Wenn der Gegner einen selbst angreift, sollte seine Angriffsanimation natürlich auf den Charas auf dem Kampffeld stattfinden.

5. Beim Tod der eigenen Charas wäre einfach eine liegende Position mit
Blick nach oben cool. Einfaches verschwinden der Helden vom Kampffeld
ist auch ok.



Wenn jemand von Euch so etwas zusammenstricken könnte, wäre das echt
gigantisch!! Es gibt viele unterschiedliche Kampfsysteme, aber bevor man
sie einbauen kann bzw. mit ihnen arbeiten, muss einer wie ich (nonscripter), echt ruby studieren :müde:

Am liebsten wäre dieser Spruch: ,,Einfach über MAIN reinkopieren und das wars.''



Ich bedanke mich im Vorraus und hoffen auf ein

bombastisches Ergebnis.



MfG

2

Montag, 6. Juni 2011, 02:51

Ich denke das Enu Tankentai Battle Script wird dir wohl am ehesten zusagen. Theoretisch musst du nur die Scripts bei dir einfügen. Es ist auf englisch, aber dennoch außerordentlich gut erklärt, falls du z.b. noch nebenbei die Fenstergröße/Position, Schriftfarbe ect. ändern willst. Auch sonst kann man damit auch ohne jegliche Script-Kenntnisse ein sehr schickes KS zaubern.

RPG Tankentai Sideview Battle System | RPG Studio
Bild

3

Freitag, 10. Juni 2011, 12:03

@Confodere

Vielen Dank,
der Script sieht vielversprechend aus. Versuche mal, mich damit auseinander zu setzen.
Sollte Jemand trotsdem Zeit haben, wäre das echt super, wenn sich doch der Sache annehmen würde, da ich noch nicht weiss, ob
der empfolene Script, tatsächlich leicht zu bedienen ist. (für Scriptnoobs)
-----------------------------
Sorry für den DoppPost!
Habe aber eine dringende Frage.
Ist es vielleicht möglich, das Battler-Poträt der Helden, auf der rechten Seite erscheinen zu lassen, anstatt unten bei den Gesundheitsbalken etc.?
Dann hätte ich mein gewünschtes Kampfsystem, nur halt ohne Battleranimationen, da ich die Porträts durch von mir geänderte Heldenposen ersetzen würde.
Das wäre echt super cool, wenn jemand mir helfen könnte, da das KS mich bei meinem Projekt gerade aufhält.
MfG

Edit Ein Edit hätte es anstelle des Doppelposts auch getan. Auch wenn du deine Frage als dringend erachtest, bei einem einfachen Edit wird dein Beitrag auch als "neu" in der Threadliste angezeigt ^^
~4tsh

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »4tsh« (15. Juni 2011, 18:53)


4

Montag, 13. Juni 2011, 23:56

Also, das lässt sich durchaus machen.

Mach mal folgendes in diesen Scripten des Kampfsystems: (Die Zahl am Anfang ist die Zeile)

Script: Battle Window
13/ Display_Type = 2 (Damit lassen sich sämtliche Bilder/Textpositionen im Kampf verändern.
47/ Custom_Stat_Position = [[480,0],[480,100],[480,200],[480,300]] (X & Y-Position der 4 Portraits, kannst du noch beliebig anpassen)
51/ Battle_Window = [0 , 0, 640, 480, 0, true] (Ist das Fenster, wo die 4 Portraits angezeigt werden. Werte: X,Y,Breite,Höhe,Durchsichtigkeit, Transparente Ecken Ja/Nein (bzw. true/false). Ich weiß nicht, ob man es später sehen soll, daher hab ichs mal komplett Durchsichtig (Wert 0) gemacht. Sieht denke mal besser so aus)

Script: SBS Config - XP
107/ HIDE_WINDOW = false

Damit sollte es nun erstmal so wie im Anhang aussehen. Ich könnte es dir noch weiter modifizieren, nur müsste ich dann von dir genauere Positionen und Funktionen wissen. Was noch möglich wäre, wäre z.b. das entfernen der Namen (Sind mMn überflüssig, wenn man sowieso schon das Bild des Charakters sieht), noch mehr als 4 Charaktere, entfernen von aktuellen HP/MP und maximalen MP/HP, Andere Positionen für MP/HP/Name (Problem ist dabei, das es der Wert den man da verändern kann, für alle Charakterslots gilt. D.h. wenn ich den obersten Namen z.b. um 100 Pixeln absenke, gehen die anderen auch 100 Pixel runter und möglicherweise könnte man dann den untersten nicht mehr sehen, da er aus dem Bildschirm geschoben wird). Positionen der Charaktere auf dem Kampffeld, Position des "Angriff/Skill/Item/..." Fensters. Schriftgröße,Schriftfont, Durchsichtbarkeit von sämtlichen Fenstern und Rändern und noch einige mehr. Am besten erstellst du dir mal ein Bild in Paint (640x480) und zeichnest dort durch z.b. Vierecke ein, wo du welches Menü hinhaben willst.

Es reicht übrigens, wenn du einen Beitrag editierst. Nach einem Edit wird der Thread wieder hochgeholt und als ungelesen markiert.

Gruß
»Confodere« hat folgendes Bild angehängt:
  • qqqqqqqqqqq.jpg
Bild

5

Dienstag, 14. Juni 2011, 02:21

Du bist echt spitze Confodere!! :yahoo!:
Ich mache die Pictures fertig und poste sie dir.
MfG

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

So, da bin ich wieder.
Sag mal Confodere, kannst du das untere Fenster unsichtbar machen, da es ja nicht mehr von Nutzen ist?

Unten habe ich eine kleine Skizze gemacht.
Wäre cool, wenn die Helden, in etwa dieser Position stehen würden und die HP und MP um einiges kleiner, unter ihnen wäre.
Der Status kann (Normal/Vergiftet) über den Köpfen, ebenfalls um einiges kleiner sein. (Sollte es blöd aussehen, dann mach es wo du es für sinnvoll empfindest.)
Das Fenster mit den Haupt-Kommandos (Angriff, Verteidigung etc.)kann in der Mitte des Bildschirms sein.
Die ganzen anderen Fenster, wie Inventar, Techniken und so, können bleiben wo sie sind.

Ich bin schon echt gigantisch auf das Ergebnis gespannt.

Ach ja Confodere, wenn es dir wirklich nichts ausmacht, könntest du vielleicht den von dir veränderten Script-Quelltext hier rein tun?
Ich kenne diese ganzen Abstände bei den Scripten nicht.

Schon mal vielen, vielen Dank für deine Mühe.
MfG
»ViktorVega3000« hat folgendes Bild angehängt:
  • Kampfmuster.png

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »4tsh« (15. Juni 2011, 18:54)


6

Dienstag, 14. Juni 2011, 04:35

Hm, wie meinst du das mit dem untersten Fenster? Das Fenster mit den Zaubern sieht man ja nur, wenn man "Skills" bzw. Fähigkeiten im Komandomenü auswählt. Ansonsten ist es nicht zu sehen. Es lässt sich aber auch durchsichtig machen, sodass man nur noch die Namen und MP-Kosten sehen würde.


Müssen die Portraits (Also die 4 auf der rechten Seite) unbedingt da sein? Es ist nämlich nicht möglich die 4 Portraits an der Stelle anzuzeigen und gleichzeit die HP/MP/Name individuell auf dem Screen zu verteilen. D.h. wenn du die Portraits verwenden willst, kann ich die HP/MP/Namesanzeige nicht so hinter bzw. unter die Charaktere positionieren. Dann könnte ich sie jedeglich neben die Portraits setzen. Sofern du auf die Portraits verzichten kannst ließe sich das aber bewerkstelligen.

Hab dir mal im Anhang die Möglichkeit mit den Portraits und die mit den individuellen MP/HP/Namesanzeigen hochgeladen. Die schwarzen Elipsen sollen die Charaktere auf dem Feld darstellen. In beiden Beispielen kann ich sie aber noch woanders platzieren.
Ansonsten könntest du mir noch sagen welche Schriftart du haben möchtest.

Die Statusveränderungen (Gift ect.) werden nicht in schriftlicher Form dargestellt, sondern in Symbolen. D.h. bei Gift wären z.b. Giftige Blasen über dem Charakter zu sehen, bei Stumm eine [...] Sprechblase, bei Konfus ein paar Sternchen usw.
»Confodere« hat folgende Bilder angehängt:
  • Unbenannts.jpg
  • sdfsdf.jpg
Bild

7

Dienstag, 14. Juni 2011, 10:00

Hey Confodere!

Die grünen Namen auf meiner Skizze, sollen Nur zeigen, wo welcher Held steht, d.h. die Namen müssen garnicht auftauchen.(habe es notieren sollen, sorry)
Die Porträts sind auch unnötig. Nur Die Battlergrafiken, die werde ich dann durch meine Posen meiner Helden ersetzen.
Das mit den Status, wie du es beschrieben hast, hört sich sehr, sehr gut an.
Ach ja, das Fenster, welches ich meine, ist nur dieses, wo die Battler im Normalen Fall angezeigt werden (unten). Die Zauber und Skill-Fenster können bleiben, wie sie sind. ;)
Die Schrift ist mir nicht wichtig.
Also praktisch so, wie deine zweite Skizze (sdfsdf.jpg), halt nur ohne die Namen.

THX Meister

8

Donnerstag, 16. Juni 2011, 01:24

Okay. Hab heute noch ein wenig rumgebastelt. Gefällt es dir so besser? Der Abstand zwischen HP/MP und den Zahlen ist leider etwas groß und verkleinern lässt sich der Abstand auch nicht. Ich könnte maximal HP/MP wegmachen, sodass nur die Zahlen zu sehen sind.

So, wie du auf dem Bild siehst, sind von den unteren beiden Kämpfern noch die Portraits zu sehen. Die Portraits werden ja im Spieleordner unter Graphics/Faces abgelegt. Du müsstest dort später noch eine transparente .PNG Datei mit dem Namen des Charsets des dazugehörigen Kämpfers.

Also im Klartext: Z.b. hast du einen Helden namens Alex. Als Chargrafik für diesen Charakter hast du im RPG Maker "001-Fighter01" ausgewählt. Nun musst du im Faces Ordner ein transparentes Bild mit Namen "001-Fighter01" einfügen, welches das Spiel dann später dem Helden Alex zuordnet.

Im Bild unten hab ich jetzt mal bei den ersten beiden Charas ein transparentes Bild reingestellt, sodass man annimmt, das da garnichts ist. Bei den anderen beiden Helden hab ich nichts geändert und wie du siehst sieht man dort noch die Portraits.
»Confodere« hat folgendes Bild angehängt:
  • qqqqq.jpg
Bild

9

Donnerstag, 16. Juni 2011, 08:26

Hey Confodere!

Das heisst, ich muss dann ein neuen Ordner mit dem Namen "Face" anlegen? Erkennt der Script, dann den Namen des passenden Battlers selbstständig, wenn der Name übereinstimmt?

Das mit dem Abstand der Namen (HP und MP) ist nicht so wild, aber du hast Recht, man kann sie weglassen, dann sieht es ordentlicher aus und es ist auch wohl klar, was für was steht.

Es sieht schon wirklich bombe aus, was du bis jetzt gezaubert hast.

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

Ach warte mal, kleiner Denkfehler von mir...
Kann man die Porträts ganz weglassen?

10

Sonntag, 19. Juni 2011, 20:47

Ja, das Script erkennt den Namen selbstständig, musst also nichts weiter tun. Der Ordner muss "Faces" heißen, nicht "Face". Erstelle ihn im Ordner "Graphics". Möglicherweise ist er aber schon da.
Hab dir mal die Demo hochgeladen. HP/MP steht immernoch da. Wenn du es weghaben willst, sag noch kurz bescheid. Ansonsten kopierst du die Scripts einfach von der Demo in dein Spiel und (sofern du es nicht sowieso schon getan hast) auch die Bilder im Graphics Ordner. Da du das KS aber schon in deinem Spiel drin hast, gehe ich mal davon aus das du die Bilder dazu auch reingepackt hast.

Was du jetzt noch tun musst, ist halt eben die Charakter Portraits durchsichtig zu machen. Außerdem gibts auch noch ein Problem mit den Statuszuständen. Da ich ja im Prinzip die Portraits verschoben habe, sind auch die Bilder von den Statusveränderungen verschoben, da diese quasi an den Portraits verankert sind. Hier musst du aber einfach genauso vorgehen, wie mit den Charakterportraits. Einfach alle Datein im Icons Ordner mit der Endung "_st" (z.b. Venom_st) unsichtbar machen. Das wäres dann auch schon. Wenn du noch Fragen oder Wünsche hast kannste dich noch melden.

In der Demo hab ich bereits im Faces Ordner einige "Unsichtbare" Chars drin. Du kannst die Datei einfach kopieren und in die gewünschten Namen umändern. Nebenbei kannst du die Dateien auch für die Icons nutzen.
»Confodere« hat folgende Datei angehängt:
Bild

11

Montag, 20. Juni 2011, 10:13

Erstmal ein riesiges Dakeschön für deine Mühe Confodere!

Aber wir haben uns falsch verstanden. Ich bin die ganze Zeit von dem Standart-Kampfsystem des RMXP ausgegangen, welches dann sozusagen Gefaceliftet wird, indem wir die Standart Battlers von unten des Bildschirms in die gewünschten Position nach rechts ziehen und halt die HP/MP Anzeigen. (Praktisch den Standart Kampf Script bearbeiten, deshalb auch keine Animationen der
Kämpfer nötig.)

Du hast also das RPG TSBS getunt. Bei der Demo ist das praktisch so, dass er alle Zustände wie (Knockout usw.) über den Transparenten Faces anzeigt und somit nicht passend bei den Battlers.

Es ist mir echt unangenehm, dass ich das verpeilt habe, richtig darauf hinzudeuten, welches KS ich bearbeitet haben möchte...

Falls du nicht enttäuscht und verärgert bist und vielleicht doch noch mal Lust hast, das Standart KS zu tunen, wäre ich mehr als dankbar.
MfG

Kagurame

Alopex Lagopus

Motto: Ich Böse, Du Teufel

  • Nachricht senden

12

Dienstag, 21. Juni 2011, 08:10

Das verstehe ich nun nicht.

Du fragst, er macht sich arbeit. Du hast immer wieder Bilder bekommen, und du fandest die Bilder toll. Genial.

Wen interessiert es da dann, ob es früher ein Standart oder ein Takenei war? Im Endeffekt hast du das was du Bildlich so toll fandest, musst also für uns und vor allem für den schreiber genauer erklären, was dir dort nun nicht passt... :cursing:
Bild

  • Hallo

    Tabs klicken unso, ne?
  • Lyric

    Meine schwarze Liste, beginnt mit einem Satz:
    "Wer zuletzt lacht, lacht am besten!", und am Ende ist noch Platz.
    Auf der Liste meiner Feinde, ist auch für euch noch Platz
    Wer zuletzt lacht, lacht am besten!
    Merkt euch diesen Satz!

    Ode an die Feindschaft von Saltatio Mortis

  • Outtakes

    • Nummer 3
      20.09.2012 - 19:46
      "Yah, ich bin ihre Motivazin." "Motivazin - gibts das jetzt in der Apotheke rezeptflichtig?"
    • Ich mag Kekse
    • Nummer 2
      08.09.2012 - 01:29 Uhr
      "Die Erlebnismacher zu Hannovre - Exlibre - ääääh... Excalibur"

      *Lachflash*
    • Nummer 1
      07.09.2012 - 22:58 Uhr
      *Bööarps* - Die Erlebnismacher zu Hannovre - Excalibur... "Mahlzeit... also... doch nicht Mahlzeit... war nur die Website"
      "Ich hab gerülpst -.-" "Du hast was?" *LACHFLASH*
      "Nicht dein Ernst, oder?" "DOCH!" *LACHFLASH second tour*
  • Profile

    Bild
  • Ich

    Dass bin ich:

    Maker: RPG-XP, RPG-VX
    Story:
    Für andere mehr als für mich: 60%

    Grafik:
    Ich werde besser: 35%

    Pixeln:
    Ich stehe an den Anfängen: 7%

    Mapping:
    Es fehlen nur noch (alle) Feinheiten: 67%

    Scripting:
    Informatiker, mittlerweile auch andere Sachen am skripten: 93%
  • Neues aus der SB

    Neues aus der SB:

    Spoiler: Die Camper
    (03:41:36) Kagurame: n8 du
    (03:41:37) Irrlicht: Nacht Mozilla
    (03:41:47) MozillaBabybird: Kagu: der witz war flach
    (03:42:01) Kagurame: welcher witz?
    (03:42:14) Heatra: geh nicht benji
    (03:42:21) Heatra: spiel lieber ats2 :D
    (03:42:25) MozillaBabybird: nacht leute ^^ ijemand sollte diesen verlauf im studio bash posten, damit die mal wissen wer die echten camper hier sind :D
    (03:42:35) Kagurame: ich bin scripten
    (03:42:38) MozillaBabybird: Heat: tut mir sorry xD
    (03:42:40) Kagurame: ich mach das...^^
    (03:42:48) MozillaBabybird: bis .... mittag ?
    (03:42:49) Heatra: ^^
    (03:42:55) MozillaBabybird: ja mittag dürfte passen
    (03:42:56) MozillaBabybird: :D
    (03:42:57) Kagurame: ^^
    (03:43:02) Heatra: ich steh morgen eh erst um 5 uhr mittags auf
    (03:43:07) Kagurame: bis heute
    (03:43:11) Steve: MozillaBabybird verlässt den Chat.
    (03:43:15) Kagurame: ich so um 3
    zum Lesen den Text mit der Maus markieren


    Spoiler: Die Informatiker vom Dienst
    (03:05:32) Ankou: bist du dir SICHER, dass es die Performance an der Stelle kritisch ist und c.a. 30% sind KEIN großer Unterschied?
    (03:05:41) Ankou: oh
    (03:05:45) Ankou: okay
    (03:06:21) Asandril: Oh Ha was habt Ihr gerade für ein Thema?
    (03:06:41) Ankou: das ist in der Tat eine performancekritische angelegenheit, aber ich denke dennoch nicht, dass das die Dinge sind auf die du dein Hauptaugenmerk richten solltest.
    (03:07:01) Heatra: maschine
    (03:07:01) Ankou: derartige Mikrooptimierungen werden Performanceprobleme sogut wie niemals beseitigen können
    (03:07:01) Irrlicht: anhand der Tatsache dass es 20 000 000 Durchläufe waren nicht wirklich :-/
    (03:07:08) Ankou: änder was konzeptionelles oder lass es bleiben.
    (03:07:31) Ankou: evtl. kannst du mehr der Interpretation nach vorne verlagern
    (03:08:06) Ankou: aber solche Dinge zu versuchen wie die case Abfragen durch send zu ersetzen in der Hoffnung ein paar Prozent einzusparen bringens dir nicht
    (03:08:26) Asandril: Bin ich gerade hier in einem Kurs gelandet ..
    (03:08:36) Irrlicht: hatte mal in Erwägung gezogen die Befehle evtl. schonmal etwas "vorzuinterpretieren", aber das dürfte dann mehr Speicher verbrauchen als es Geschwindigkeit bringt...
    (03:09:11) Ankou: Asandril: ja, erstaunlich, angetrunken an Silvester über so etwas zu reden
    (03:09:28) Heatra: -> lampenfieber
    (03:09:40) Asandril: Kann ich nur beipflichten.
    (03:09:46) Irrlicht: atm bin ich mir nicht sicher was genau den doch vergleichsweise erheblichen Lag von Parallel-Process-Events verursacht (oder ob es einfach an der gesammten Masse liegt) wenn ich bei 2 000 000 solcher Durchläufe unter einer Sek. bleibe...
    (03:09:57) Ankou: Irrlicht: das ist durchaus üblich. Speicher gegen Geschwindigkeit einzustauschen ist sehr populär und bringt oft viel
    (03:11:23) Irrlicht: mal schaun :)
    zum Lesen den Text mit der Maus markieren


    Spoiler: Auch noch später^^
    (03:32:35) (Kagurame_AnkündigungImForumMach): es da ne methode wie beim xp?
    (03:32:48) Irrlicht: Cache.system("Iconset")
    bekommst das Iconset
    (03:32:50) (Kagurame_AnkündigungImForumMach): brauche es dringend, aber nix gefunden bisher
    (03:33:01) (Kagurame_AnkündigungImForumMach): und dann per id?
    (03:33:06) (Kagurame_AnkündigungImForumMach): drauf zugreifen?
    (03:33:07) Irrlicht: Index berechnet sich einfach aus
    x = index % 16
    y = index / 16
    (03:33:17) Irrlicht: afaik warens 16 nebeneinander^^
    (03:33:28) (Kagurame_AnkündigungImForumMach): ok, danke.
    (03:33:51) (Kagurame_AnkündigungImForumMach): ich glaub ich scripte dann noch ein bissl
    (03:34:01) Steve: (Kagurame_AnkündigungImForumMach​) heißt jetzt Kagurame.
    (03:34:04) Irrlicht: im XP hast die einzelnen Icons anhand des Namens aus dem Icon-Ordner aufgerufen
    (03:34:09) Steve: Kagurame ist nun Scripten!
    (03:34:17) Irrlicht: (geht natürlich im VX auch, aber wozu gibts das Iconset)
    (03:34:23) Kagurame: ja ich weis, daher war ich heut mittag verwirrt
    zum Lesen den Text mit der Maus markieren

13

Dienstag, 21. Juni 2011, 09:34

Bitte nicht falsch verstehen.
Es sieht auch toll aus und entspricht absolut den Vorstellungen.
Ich dachte nur die ganze Zeite, dass Confodere das Standart Kampfsystem bearbeitet, an den Bildern allein habe ich das nicht unterscheiden können.

Der Grund ist nur, dass dieses Takenei KS mich einfach überfordert, da ich kein Scripter bin. Irgendetwas passt bei mir einfach nicht, ob das Battler sind, die nicht auftauchen oder die Statusanzeigen oder Fehlermeldungen in irgendwelchen Zeilen...

Es geht mir allein um die Einfachheit. Ich lege den grössten Wert auf Story und Design.Halt auf die Sachen, die kann (meine Meinung). Ich wollte im Nachhinein nur noch die Positionen der Porträts des Standart-Kampfsystems weiter oben auf der rechten Seite haben. Damit das KS wenigstens ein wenig anders aussieht, als das RMXP-KS.

Und Confodere bin ich unbedingt dankbar, für seine Mühe und Zeit

14

Mittwoch, 22. Juni 2011, 03:14

Ach, halb so wild. ;)

Das Standart-KS kann ich dir leider nicht bearbeiten. Das geht dann doch über meine Fähigkeiten hinaus, bin nämlich auch nicht sonderlich bewandert in Sachen Scripten. ;)
Bild

Kagurame

Alopex Lagopus

Motto: Ich Böse, Du Teufel

  • Nachricht senden

15

Mittwoch, 22. Juni 2011, 09:44

Soweit ich weis, muss man nicht Scripten können um es zu Konfigurieren.

Du musst lediglich den einen oder anderen Wert anpassen, weie das geht, steht im Regelfall am Anfang und hinter der zeile (die zu konfigurierenden stehen im Regelfall auch am Anfang)


Wenn du irgendwelche Fehlermeldungen bekommst, Poste sie hier mit bearbeitetem Script und evtl. anderen Verwendeten Scripten.

Bisher haben es die mesten zum laufen bekommen, ob Scripter oder nicht :)
Bild

  • Hallo

    Tabs klicken unso, ne?
  • Lyric

    Meine schwarze Liste, beginnt mit einem Satz:
    "Wer zuletzt lacht, lacht am besten!", und am Ende ist noch Platz.
    Auf der Liste meiner Feinde, ist auch für euch noch Platz
    Wer zuletzt lacht, lacht am besten!
    Merkt euch diesen Satz!

    Ode an die Feindschaft von Saltatio Mortis

  • Outtakes

    • Nummer 3
      20.09.2012 - 19:46
      "Yah, ich bin ihre Motivazin." "Motivazin - gibts das jetzt in der Apotheke rezeptflichtig?"
    • Ich mag Kekse
    • Nummer 2
      08.09.2012 - 01:29 Uhr
      "Die Erlebnismacher zu Hannovre - Exlibre - ääääh... Excalibur"

      *Lachflash*
    • Nummer 1
      07.09.2012 - 22:58 Uhr
      *Bööarps* - Die Erlebnismacher zu Hannovre - Excalibur... "Mahlzeit... also... doch nicht Mahlzeit... war nur die Website"
      "Ich hab gerülpst -.-" "Du hast was?" *LACHFLASH*
      "Nicht dein Ernst, oder?" "DOCH!" *LACHFLASH second tour*
  • Profile

    Bild
  • Ich

    Dass bin ich:

    Maker: RPG-XP, RPG-VX
    Story:
    Für andere mehr als für mich: 60%

    Grafik:
    Ich werde besser: 35%

    Pixeln:
    Ich stehe an den Anfängen: 7%

    Mapping:
    Es fehlen nur noch (alle) Feinheiten: 67%

    Scripting:
    Informatiker, mittlerweile auch andere Sachen am skripten: 93%
  • Neues aus der SB

    Neues aus der SB:

    Spoiler: Die Camper
    (03:41:36) Kagurame: n8 du
    (03:41:37) Irrlicht: Nacht Mozilla
    (03:41:47) MozillaBabybird: Kagu: der witz war flach
    (03:42:01) Kagurame: welcher witz?
    (03:42:14) Heatra: geh nicht benji
    (03:42:21) Heatra: spiel lieber ats2 :D
    (03:42:25) MozillaBabybird: nacht leute ^^ ijemand sollte diesen verlauf im studio bash posten, damit die mal wissen wer die echten camper hier sind :D
    (03:42:35) Kagurame: ich bin scripten
    (03:42:38) MozillaBabybird: Heat: tut mir sorry xD
    (03:42:40) Kagurame: ich mach das...^^
    (03:42:48) MozillaBabybird: bis .... mittag ?
    (03:42:49) Heatra: ^^
    (03:42:55) MozillaBabybird: ja mittag dürfte passen
    (03:42:56) MozillaBabybird: :D
    (03:42:57) Kagurame: ^^
    (03:43:02) Heatra: ich steh morgen eh erst um 5 uhr mittags auf
    (03:43:07) Kagurame: bis heute
    (03:43:11) Steve: MozillaBabybird verlässt den Chat.
    (03:43:15) Kagurame: ich so um 3
    zum Lesen den Text mit der Maus markieren


    Spoiler: Die Informatiker vom Dienst
    (03:05:32) Ankou: bist du dir SICHER, dass es die Performance an der Stelle kritisch ist und c.a. 30% sind KEIN großer Unterschied?
    (03:05:41) Ankou: oh
    (03:05:45) Ankou: okay
    (03:06:21) Asandril: Oh Ha was habt Ihr gerade für ein Thema?
    (03:06:41) Ankou: das ist in der Tat eine performancekritische angelegenheit, aber ich denke dennoch nicht, dass das die Dinge sind auf die du dein Hauptaugenmerk richten solltest.
    (03:07:01) Heatra: maschine
    (03:07:01) Ankou: derartige Mikrooptimierungen werden Performanceprobleme sogut wie niemals beseitigen können
    (03:07:01) Irrlicht: anhand der Tatsache dass es 20 000 000 Durchläufe waren nicht wirklich :-/
    (03:07:08) Ankou: änder was konzeptionelles oder lass es bleiben.
    (03:07:31) Ankou: evtl. kannst du mehr der Interpretation nach vorne verlagern
    (03:08:06) Ankou: aber solche Dinge zu versuchen wie die case Abfragen durch send zu ersetzen in der Hoffnung ein paar Prozent einzusparen bringens dir nicht
    (03:08:26) Asandril: Bin ich gerade hier in einem Kurs gelandet ..
    (03:08:36) Irrlicht: hatte mal in Erwägung gezogen die Befehle evtl. schonmal etwas "vorzuinterpretieren", aber das dürfte dann mehr Speicher verbrauchen als es Geschwindigkeit bringt...
    (03:09:11) Ankou: Asandril: ja, erstaunlich, angetrunken an Silvester über so etwas zu reden
    (03:09:28) Heatra: -> lampenfieber
    (03:09:40) Asandril: Kann ich nur beipflichten.
    (03:09:46) Irrlicht: atm bin ich mir nicht sicher was genau den doch vergleichsweise erheblichen Lag von Parallel-Process-Events verursacht (oder ob es einfach an der gesammten Masse liegt) wenn ich bei 2 000 000 solcher Durchläufe unter einer Sek. bleibe...
    (03:09:57) Ankou: Irrlicht: das ist durchaus üblich. Speicher gegen Geschwindigkeit einzustauschen ist sehr populär und bringt oft viel
    (03:11:23) Irrlicht: mal schaun :)
    zum Lesen den Text mit der Maus markieren


    Spoiler: Auch noch später^^
    (03:32:35) (Kagurame_AnkündigungImForumMach): es da ne methode wie beim xp?
    (03:32:48) Irrlicht: Cache.system("Iconset")
    bekommst das Iconset
    (03:32:50) (Kagurame_AnkündigungImForumMach): brauche es dringend, aber nix gefunden bisher
    (03:33:01) (Kagurame_AnkündigungImForumMach): und dann per id?
    (03:33:06) (Kagurame_AnkündigungImForumMach): drauf zugreifen?
    (03:33:07) Irrlicht: Index berechnet sich einfach aus
    x = index % 16
    y = index / 16
    (03:33:17) Irrlicht: afaik warens 16 nebeneinander^^
    (03:33:28) (Kagurame_AnkündigungImForumMach): ok, danke.
    (03:33:51) (Kagurame_AnkündigungImForumMach): ich glaub ich scripte dann noch ein bissl
    (03:34:01) Steve: (Kagurame_AnkündigungImForumMach​) heißt jetzt Kagurame.
    (03:34:04) Irrlicht: im XP hast die einzelnen Icons anhand des Namens aus dem Icon-Ordner aufgerufen
    (03:34:09) Steve: Kagurame ist nun Scripten!
    (03:34:17) Irrlicht: (geht natürlich im VX auch, aber wozu gibts das Iconset)
    (03:34:23) Kagurame: ja ich weis, daher war ich heut mittag verwirrt
    zum Lesen den Text mit der Maus markieren

16

Donnerstag, 23. Juni 2011, 00:33

Wenn ich nur wissen würde, wo ich was ändern muss. Kenne auch die Parameter des Kampfbildschirms nicht.

Leute, falls einer etwas Ahnung davon hat, please help me!! ;(

Solange das KS nicht steht, liegt mein Projekt auf Eis. Sehr, sehr schade, da ich nichts wie weiter machen möchte.
Ich habe bereits unheimlich viele Stunden allein in den Prolog investiert.
Ich brauche das KS so dringend, da ich (eigene/bearbeitete) Monster benutzen werde und ich sie grafisch ausrichten muss.


Leute schaut mal hier, genau so, mehr brauche ich mitlerweile nicht:
Spoiler
[img]http://t2.gstatic.com/images?q=tbn:ANd9GcQQO2s5SnsKLEIdQxELh4sP-5BvXCyA7-k6u0nXksfTB1v5ciqC[/img]
zum Lesen den Text mit der Maus markieren

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ViktorVega3000« (23. Juni 2011, 00:33)


Kagurame

Alopex Lagopus

Motto: Ich Böse, Du Teufel

  • Nachricht senden

17

Donnerstag, 23. Juni 2011, 02:19

OK... falsch ausgedrückt. Du sollst nicht nur eventuelle Fehler posten, sondern auch die parameter oder ähnliches was du nicht kennst.

Und wenn es alles ist, dann ist es eben so.

Du musst jedoch dein Script hier posten, wenn es nicht sogar oben das ist... aber dann sieht man schon was du evtl. schon probiert hast.
Poste das Script und sage uns welche parameter du nicht verstehst... bzw. welche Konfigurationsvariablen.

Wobei aber auch immer hintendran steht was es ist... Du musst ja nicht das Script neu schreiben.
Bild

  • Hallo

    Tabs klicken unso, ne?
  • Lyric

    Meine schwarze Liste, beginnt mit einem Satz:
    "Wer zuletzt lacht, lacht am besten!", und am Ende ist noch Platz.
    Auf der Liste meiner Feinde, ist auch für euch noch Platz
    Wer zuletzt lacht, lacht am besten!
    Merkt euch diesen Satz!

    Ode an die Feindschaft von Saltatio Mortis

  • Outtakes

    • Nummer 3
      20.09.2012 - 19:46
      "Yah, ich bin ihre Motivazin." "Motivazin - gibts das jetzt in der Apotheke rezeptflichtig?"
    • Ich mag Kekse
    • Nummer 2
      08.09.2012 - 01:29 Uhr
      "Die Erlebnismacher zu Hannovre - Exlibre - ääääh... Excalibur"

      *Lachflash*
    • Nummer 1
      07.09.2012 - 22:58 Uhr
      *Bööarps* - Die Erlebnismacher zu Hannovre - Excalibur... "Mahlzeit... also... doch nicht Mahlzeit... war nur die Website"
      "Ich hab gerülpst -.-" "Du hast was?" *LACHFLASH*
      "Nicht dein Ernst, oder?" "DOCH!" *LACHFLASH second tour*
  • Profile

    Bild
  • Ich

    Dass bin ich:

    Maker: RPG-XP, RPG-VX
    Story:
    Für andere mehr als für mich: 60%

    Grafik:
    Ich werde besser: 35%

    Pixeln:
    Ich stehe an den Anfängen: 7%

    Mapping:
    Es fehlen nur noch (alle) Feinheiten: 67%

    Scripting:
    Informatiker, mittlerweile auch andere Sachen am skripten: 93%
  • Neues aus der SB

    Neues aus der SB:

    Spoiler: Die Camper
    (03:41:36) Kagurame: n8 du
    (03:41:37) Irrlicht: Nacht Mozilla
    (03:41:47) MozillaBabybird: Kagu: der witz war flach
    (03:42:01) Kagurame: welcher witz?
    (03:42:14) Heatra: geh nicht benji
    (03:42:21) Heatra: spiel lieber ats2 :D
    (03:42:25) MozillaBabybird: nacht leute ^^ ijemand sollte diesen verlauf im studio bash posten, damit die mal wissen wer die echten camper hier sind :D
    (03:42:35) Kagurame: ich bin scripten
    (03:42:38) MozillaBabybird: Heat: tut mir sorry xD
    (03:42:40) Kagurame: ich mach das...^^
    (03:42:48) MozillaBabybird: bis .... mittag ?
    (03:42:49) Heatra: ^^
    (03:42:55) MozillaBabybird: ja mittag dürfte passen
    (03:42:56) MozillaBabybird: :D
    (03:42:57) Kagurame: ^^
    (03:43:02) Heatra: ich steh morgen eh erst um 5 uhr mittags auf
    (03:43:07) Kagurame: bis heute
    (03:43:11) Steve: MozillaBabybird verlässt den Chat.
    (03:43:15) Kagurame: ich so um 3
    zum Lesen den Text mit der Maus markieren


    Spoiler: Die Informatiker vom Dienst
    (03:05:32) Ankou: bist du dir SICHER, dass es die Performance an der Stelle kritisch ist und c.a. 30% sind KEIN großer Unterschied?
    (03:05:41) Ankou: oh
    (03:05:45) Ankou: okay
    (03:06:21) Asandril: Oh Ha was habt Ihr gerade für ein Thema?
    (03:06:41) Ankou: das ist in der Tat eine performancekritische angelegenheit, aber ich denke dennoch nicht, dass das die Dinge sind auf die du dein Hauptaugenmerk richten solltest.
    (03:07:01) Heatra: maschine
    (03:07:01) Ankou: derartige Mikrooptimierungen werden Performanceprobleme sogut wie niemals beseitigen können
    (03:07:01) Irrlicht: anhand der Tatsache dass es 20 000 000 Durchläufe waren nicht wirklich :-/
    (03:07:08) Ankou: änder was konzeptionelles oder lass es bleiben.
    (03:07:31) Ankou: evtl. kannst du mehr der Interpretation nach vorne verlagern
    (03:08:06) Ankou: aber solche Dinge zu versuchen wie die case Abfragen durch send zu ersetzen in der Hoffnung ein paar Prozent einzusparen bringens dir nicht
    (03:08:26) Asandril: Bin ich gerade hier in einem Kurs gelandet ..
    (03:08:36) Irrlicht: hatte mal in Erwägung gezogen die Befehle evtl. schonmal etwas "vorzuinterpretieren", aber das dürfte dann mehr Speicher verbrauchen als es Geschwindigkeit bringt...
    (03:09:11) Ankou: Asandril: ja, erstaunlich, angetrunken an Silvester über so etwas zu reden
    (03:09:28) Heatra: -> lampenfieber
    (03:09:40) Asandril: Kann ich nur beipflichten.
    (03:09:46) Irrlicht: atm bin ich mir nicht sicher was genau den doch vergleichsweise erheblichen Lag von Parallel-Process-Events verursacht (oder ob es einfach an der gesammten Masse liegt) wenn ich bei 2 000 000 solcher Durchläufe unter einer Sek. bleibe...
    (03:09:57) Ankou: Irrlicht: das ist durchaus üblich. Speicher gegen Geschwindigkeit einzustauschen ist sehr populär und bringt oft viel
    (03:11:23) Irrlicht: mal schaun :)
    zum Lesen den Text mit der Maus markieren


    Spoiler: Auch noch später^^
    (03:32:35) (Kagurame_AnkündigungImForumMach): es da ne methode wie beim xp?
    (03:32:48) Irrlicht: Cache.system("Iconset")
    bekommst das Iconset
    (03:32:50) (Kagurame_AnkündigungImForumMach): brauche es dringend, aber nix gefunden bisher
    (03:33:01) (Kagurame_AnkündigungImForumMach): und dann per id?
    (03:33:06) (Kagurame_AnkündigungImForumMach): drauf zugreifen?
    (03:33:07) Irrlicht: Index berechnet sich einfach aus
    x = index % 16
    y = index / 16
    (03:33:17) Irrlicht: afaik warens 16 nebeneinander^^
    (03:33:28) (Kagurame_AnkündigungImForumMach): ok, danke.
    (03:33:51) (Kagurame_AnkündigungImForumMach): ich glaub ich scripte dann noch ein bissl
    (03:34:01) Steve: (Kagurame_AnkündigungImForumMach​) heißt jetzt Kagurame.
    (03:34:04) Irrlicht: im XP hast die einzelnen Icons anhand des Namens aus dem Icon-Ordner aufgerufen
    (03:34:09) Steve: Kagurame ist nun Scripten!
    (03:34:17) Irrlicht: (geht natürlich im VX auch, aber wozu gibts das Iconset)
    (03:34:23) Kagurame: ja ich weis, daher war ich heut mittag verwirrt
    zum Lesen den Text mit der Maus markieren

Yuber

Seher

Motto: Die Welt zu beherrschen.

  • Nachricht senden

18

Donnerstag, 23. Juni 2011, 13:07




Leute schaut mal hier, genau so, mehr brauche ich mitlerweile nicht:
Spoiler
[img]http://t2.gstatic.com/images?q=tbn:ANd9GcQQO2s5SnsKLEIdQxELh4sP-5BvXCyA7-k6u0nXksfTB1v5ciqC[/img]
zum Lesen den Text mit der Maus markieren


Seh ich das richtig? Du willst das die Battler einfach nur so angeordnet sind wie bei deinem Bild? Das ist alles?
Nur noch selten hier.

'Til now, I always let people walk all over me!
From now on, if anyone makes fun of me, I'll kill 'em! Just like that!

19

Donnerstag, 23. Juni 2011, 16:29

@ Cloud: Genau. Das würde mir wirklich schon gefallen.

Yuber

Seher

Motto: Die Welt zu beherrschen.

  • Nachricht senden

20

Donnerstag, 23. Juni 2011, 16:46

Also ich finde das es ziemlich mies aussieht.
Du solltest wenigstens noch die Battler verkleinern.

Also ersetzt dein Game_Actor mit dem hier:
Spoiler

Ruby 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles the actor. It's used within the Game_Actors class
#  ($game_actors) and refers to the Game_Party class ($game_party).
#==============================================================================
 
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader   :name                     # name
  attr_reader   :character_name           # character file name
  attr_reader   :character_hue            # character hue
  attr_reader   :class_id                 # class ID
  attr_reader   :weapon_id                # weapon ID
  attr_reader   :armor1_id                # shield ID
  attr_reader   :armor2_id                # helmet ID
  attr_reader   :armor3_id                # body armor ID
  attr_reader   :armor4_id                # accessory ID
  attr_reader   :level                    # level
  attr_reader   :exp                      # EXP
  attr_reader   :skills                   # skills
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     actor_id : actor ID
  #--------------------------------------------------------------------------
  def initialize(actor_id)
    super()
    setup(actor_id)
  end
  #--------------------------------------------------------------------------
  # * Setup
  #     actor_id : actor ID
  #--------------------------------------------------------------------------
  def setup(actor_id)
    actor = $data_actors[actor_id]
    @actor_id = actor_id
    @name = actor.name
    @character_name = actor.character_name
    @character_hue = actor.character_hue
    @battler_name = actor.battler_name
    @battler_hue = actor.battler_hue
    @class_id = actor.class_id
    @weapon_id = actor.weapon_id
    @armor1_id = actor.armor1_id
    @armor2_id = actor.armor2_id
    @armor3_id = actor.armor3_id
    @armor4_id = actor.armor4_id
    @level = actor.initial_level
    @exp_list = Array.new(101)
    make_exp_list
    @exp = @exp_list[@level]
    @skills = []
    @hp = maxhp
    @sp = maxsp
    @states = []
    @states_turn = {}
    @maxhp_plus = 0
    @maxsp_plus = 0
    @str_plus = 0
    @dex_plus = 0
    @agi_plus = 0
    @int_plus = 0
    # Learn skill
    for i in 1..@level
      for j in $data_classes[@class_id].learnings
        if j.level == i
          learn_skill(j.skill_id)
        end
      end
    end
    # Update auto state
    update_auto_state(nil, $data_armors[@armor1_id])
    update_auto_state(nil, $data_armors[@armor2_id])
    update_auto_state(nil, $data_armors[@armor3_id])
    update_auto_state(nil, $data_armors[@armor4_id])
  end
  #--------------------------------------------------------------------------
  # * Get Actor ID
  #--------------------------------------------------------------------------
  def id
    return @actor_id
  end
  #--------------------------------------------------------------------------
  # * Get Index
  #--------------------------------------------------------------------------
  def index
    return $game_party.actors.index(self)
  end
  #--------------------------------------------------------------------------
  # * Calculate EXP
  #--------------------------------------------------------------------------
  def make_exp_list
    actor = $data_actors[@actor_id]
    @exp_list[1] = 0
    pow_i = 2.4 + actor.exp_inflation / 100.0
    for i in 2..100
      if i > actor.final_level
        @exp_list[i] = 0
      else
        n = actor.exp_basis * ((i + 3) ** pow_i) / (5 ** pow_i)
        @exp_list[i] = @exp_list[i-1] + Integer(n)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Get Element Revision Value
  #     element_id : element ID
  #--------------------------------------------------------------------------
  def element_rate(element_id)
    # Get values corresponding to element effectiveness
    table = [0,200,150,100,50,0,-100]
    result = table[$data_classes[@class_id].element_ranks[element_id]]
    # If this element is protected by armor, then it's reduced by half
    for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
      armor = $data_armors[i]
      if armor != nil and armor.guard_element_set.include?(element_id)
        result /= 2
      end
    end
    # If this element is protected by states, then it's reduced by half
    for i in @states
      if $data_states[i].guard_element_set.include?(element_id)
        result /= 2
      end
    end
    # End Method
    return result
  end
  #--------------------------------------------------------------------------
  # * Get State Effectiveness
  #--------------------------------------------------------------------------
  def state_ranks
    return $data_classes[@class_id].state_ranks
  end
  #--------------------------------------------------------------------------
  # * Determine State Guard
  #     state_id : state ID
  #--------------------------------------------------------------------------
  def state_guard?(state_id)
    for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
      armor = $data_armors[i]
      if armor != nil
        if armor.guard_state_set.include?(state_id)
          return true
        end
      end
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * Get Normal Attack Element
  #--------------------------------------------------------------------------
  def element_set
    weapon = $data_weapons[@weapon_id]
    return weapon != nil ? weapon.element_set : []
  end
  #--------------------------------------------------------------------------
  # * Get Normal Attack State Change (+)
  #--------------------------------------------------------------------------
  def plus_state_set
    weapon = $data_weapons[@weapon_id]
    return weapon != nil ? weapon.plus_state_set : []
  end
  #--------------------------------------------------------------------------
  # * Get Normal Attack State Change (-)
  #--------------------------------------------------------------------------
  def minus_state_set
    weapon = $data_weapons[@weapon_id]
    return weapon != nil ? weapon.minus_state_set : []
  end
  #--------------------------------------------------------------------------
  # * Get Maximum HP
  #--------------------------------------------------------------------------
  def maxhp
    n = [[base_maxhp + @maxhp_plus, 1].max, 9999].min
    for i in @states
      n *= $data_states[i].maxhp_rate / 100.0
    end
    n = [[Integer(n), 1].max, 9999].min
    return n
  end
  #--------------------------------------------------------------------------
  # * Get Basic Maximum HP
  #--------------------------------------------------------------------------
  def base_maxhp
    return $data_actors[@actor_id].parameters[0, @level]
  end
  #--------------------------------------------------------------------------
  # * Get Basic Maximum SP
  #--------------------------------------------------------------------------
  def base_maxsp
    return $data_actors[@actor_id].parameters[1, @level]
  end
  #--------------------------------------------------------------------------
  # * Get Basic Strength
  #--------------------------------------------------------------------------
  def base_str
    n = $data_actors[@actor_id].parameters[2, @level]
    weapon = $data_weapons[@weapon_id]
    armor1 = $data_armors[@armor1_id]
    armor2 = $data_armors[@armor2_id]
    armor3 = $data_armors[@armor3_id]
    armor4 = $data_armors[@armor4_id]
    n += weapon != nil ? weapon.str_plus : 0
    n += armor1 != nil ? armor1.str_plus : 0
    n += armor2 != nil ? armor2.str_plus : 0
    n += armor3 != nil ? armor3.str_plus : 0
    n += armor4 != nil ? armor4.str_plus : 0
    return [[n, 1].max, 999].min
  end
  #--------------------------------------------------------------------------
  # * Get Basic Dexterity
  #--------------------------------------------------------------------------
  def base_dex
    n = $data_actors[@actor_id].parameters[3, @level]
    weapon = $data_weapons[@weapon_id]
    armor1 = $data_armors[@armor1_id]
    armor2 = $data_armors[@armor2_id]
    armor3 = $data_armors[@armor3_id]
    armor4 = $data_armors[@armor4_id]
    n += weapon != nil ? weapon.dex_plus : 0
    n += armor1 != nil ? armor1.dex_plus : 0
    n += armor2 != nil ? armor2.dex_plus : 0
    n += armor3 != nil ? armor3.dex_plus : 0
    n += armor4 != nil ? armor4.dex_plus : 0
    return [[n, 1].max, 999].min
  end
  #--------------------------------------------------------------------------
  # * Get Basic Agility
  #--------------------------------------------------------------------------
  def base_agi
    n = $data_actors[@actor_id].parameters[4, @level]
    weapon = $data_weapons[@weapon_id]
    armor1 = $data_armors[@armor1_id]
    armor2 = $data_armors[@armor2_id]
    armor3 = $data_armors[@armor3_id]
    armor4 = $data_armors[@armor4_id]
    n += weapon != nil ? weapon.agi_plus : 0
    n += armor1 != nil ? armor1.agi_plus : 0
    n += armor2 != nil ? armor2.agi_plus : 0
    n += armor3 != nil ? armor3.agi_plus : 0
    n += armor4 != nil ? armor4.agi_plus : 0
    return [[n, 1].max, 999].min
  end
  #--------------------------------------------------------------------------
  # * Get Basic Intelligence
  #--------------------------------------------------------------------------
  def base_int
    n = $data_actors[@actor_id].parameters[5, @level]
    weapon = $data_weapons[@weapon_id]
    armor1 = $data_armors[@armor1_id]
    armor2 = $data_armors[@armor2_id]
    armor3 = $data_armors[@armor3_id]
    armor4 = $data_armors[@armor4_id]
    n += weapon != nil ? weapon.int_plus : 0
    n += armor1 != nil ? armor1.int_plus : 0
    n += armor2 != nil ? armor2.int_plus : 0
    n += armor3 != nil ? armor3.int_plus : 0
    n += armor4 != nil ? armor4.int_plus : 0
    return [[n, 1].max, 999].min
  end
  #--------------------------------------------------------------------------
  # * Get Basic Attack Power
  #--------------------------------------------------------------------------
  def base_atk
    weapon = $data_weapons[@weapon_id]
    return weapon != nil ? weapon.atk : 0
  end
  #--------------------------------------------------------------------------
  # * Get Basic Physical Defense
  #--------------------------------------------------------------------------
  def base_pdef
    weapon = $data_weapons[@weapon_id]
    armor1 = $data_armors[@armor1_id]
    armor2 = $data_armors[@armor2_id]
    armor3 = $data_armors[@armor3_id]
    armor4 = $data_armors[@armor4_id]
    pdef1 = weapon != nil ? weapon.pdef : 0
    pdef2 = armor1 != nil ? armor1.pdef : 0
    pdef3 = armor2 != nil ? armor2.pdef : 0
    pdef4 = armor3 != nil ? armor3.pdef : 0
    pdef5 = armor4 != nil ? armor4.pdef : 0
    return pdef1 + pdef2 + pdef3 + pdef4 + pdef5
  end
  #--------------------------------------------------------------------------
  # * Get Basic Magic Defense
  #--------------------------------------------------------------------------
  def base_mdef
    weapon = $data_weapons[@weapon_id]
    armor1 = $data_armors[@armor1_id]
    armor2 = $data_armors[@armor2_id]
    armor3 = $data_armors[@armor3_id]
    armor4 = $data_armors[@armor4_id]
    mdef1 = weapon != nil ? weapon.mdef : 0
    mdef2 = armor1 != nil ? armor1.mdef : 0
    mdef3 = armor2 != nil ? armor2.mdef : 0
    mdef4 = armor3 != nil ? armor3.mdef : 0
    mdef5 = armor4 != nil ? armor4.mdef : 0
    return mdef1 + mdef2 + mdef3 + mdef4 + mdef5
  end
  #--------------------------------------------------------------------------
  # * Get Basic Evasion Correction
  #--------------------------------------------------------------------------
  def base_eva
    armor1 = $data_armors[@armor1_id]
    armor2 = $data_armors[@armor2_id]
    armor3 = $data_armors[@armor3_id]
    armor4 = $data_armors[@armor4_id]
    eva1 = armor1 != nil ? armor1.eva : 0
    eva2 = armor2 != nil ? armor2.eva : 0
    eva3 = armor3 != nil ? armor3.eva : 0
    eva4 = armor4 != nil ? armor4.eva : 0
    return eva1 + eva2 + eva3 + eva4
  end
  #--------------------------------------------------------------------------
  # * Get Offensive Animation ID for Normal Attacks
  #--------------------------------------------------------------------------
  def animation1_id
    weapon = $data_weapons[@weapon_id]
    return weapon != nil ? weapon.animation1_id : 0
  end
  #--------------------------------------------------------------------------
  # * Get Target Animation ID for Normal Attacks
  #--------------------------------------------------------------------------
  def animation2_id
    weapon = $data_weapons[@weapon_id]
    return weapon != nil ? weapon.animation2_id : 0
  end
  #--------------------------------------------------------------------------
  # * Get Class Name
  #--------------------------------------------------------------------------
  def class_name
    return $data_classes[@class_id].name
  end
  #--------------------------------------------------------------------------
  # * Get EXP String
  #--------------------------------------------------------------------------
  def exp_s
    return @exp_list[@level+1] > 0 ? @exp.to_s : "-------"
  end
  #--------------------------------------------------------------------------
  # * Get Next Level EXP String
  #--------------------------------------------------------------------------
  def next_exp_s
    return @exp_list[@level+1] > 0 ? @exp_list[@level+1].to_s : "-------"
  end
  #--------------------------------------------------------------------------
  # * Get Until Next Level EXP String
  #--------------------------------------------------------------------------
  def next_rest_exp_s
    return @exp_list[@level+1] > 0 ?
      (@exp_list[@level+1] - @exp).to_s : "-------"
  end
  #--------------------------------------------------------------------------
  # * Update Auto State
  #     old_armor : unequipped armor
  #     new_armor : equipped armor
  #--------------------------------------------------------------------------
  def update_auto_state(old_armor, new_armor)
    # Forcefully remove unequipped armor's auto state
    if old_armor != nil and old_armor.auto_state_id != 0
      remove_state(old_armor.auto_state_id, true)
    end
    # Forcefully add unequipped armor's auto state
    if new_armor != nil and new_armor.auto_state_id != 0
      add_state(new_armor.auto_state_id, true)
    end
  end
  #--------------------------------------------------------------------------
  # * Determine Fixed Equipment
  #     equip_type : type of equipment
  #--------------------------------------------------------------------------
  def equip_fix?(equip_type)
    case equip_type
    when 0  # Weapon
      return $data_actors[@actor_id].weapon_fix
    when 1  # Shield
      return $data_actors[@actor_id].armor1_fix
    when 2  # Head
      return $data_actors[@actor_id].armor2_fix
    when 3  # Body
      return $data_actors[@actor_id].armor3_fix
    when 4  # Accessory
      return $data_actors[@actor_id].armor4_fix
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * Change Equipment
  #     equip_type : type of equipment
  #     id    : weapon or armor ID (If 0, remove equipment)
  #--------------------------------------------------------------------------
  def equip(equip_type, id)
    case equip_type
    when 0  # Weapon
      if id == 0 or $game_party.weapon_number(id) > 0
        $game_party.gain_weapon(@weapon_id, 1)
        @weapon_id = id
        $game_party.lose_weapon(id, 1)
      end
    when 1  # Shield
      if id == 0 or $game_party.armor_number(id) > 0
        update_auto_state($data_armors[@armor1_id], $data_armors[id])
        $game_party.gain_armor(@armor1_id, 1)
        @armor1_id = id
        $game_party.lose_armor(id, 1)
      end
    when 2  # Head
      if id == 0 or $game_party.armor_number(id) > 0
        update_auto_state($data_armors[@armor2_id], $data_armors[id])
        $game_party.gain_armor(@armor2_id, 1)
        @armor2_id = id
        $game_party.lose_armor(id, 1)
      end
    when 3  # Body
      if id == 0 or $game_party.armor_number(id) > 0
        update_auto_state($data_armors[@armor3_id], $data_armors[id])
        $game_party.gain_armor(@armor3_id, 1)
        @armor3_id = id
        $game_party.lose_armor(id, 1)
      end
    when 4  # Accessory
      if id == 0 or $game_party.armor_number(id) > 0
        update_auto_state($data_armors[@armor4_id], $data_armors[id])
        $game_party.gain_armor(@armor4_id, 1)
        @armor4_id = id
        $game_party.lose_armor(id, 1)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Determine if Equippable
  #     item : item
  #--------------------------------------------------------------------------
  def equippable?(item)
    # If weapon
    if item.is_a?(RPG::Weapon)
      # If included among equippable weapons in current class
      if $data_classes[@class_id].weapon_set.include?(item.id)
        return true
      end
    end
    # If armor
    if item.is_a?(RPG::Armor)
      # If included among equippable armor in current class
      if $data_classes[@class_id].armor_set.include?(item.id)
        return true
      end
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * Change EXP
  #     exp : new EXP
  #--------------------------------------------------------------------------
  def exp=(exp)
    @exp = [[exp, 9999999].min, 0].max
    # Level up
    while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
      @level += 1
      # Learn skill
      for j in $data_classes[@class_id].learnings
        if j.level == @level
          learn_skill(j.skill_id)
        end
      end
    end
    # Level down
    while @exp < @exp_list[@level]
      @level -= 1
    end
    # Correction if exceeding current max HP and max SP
    @hp = [@hp, self.maxhp].min
    @sp = [@sp, self.maxsp].min
  end
  #--------------------------------------------------------------------------
  # * Change Level
  #     level : new level
  #--------------------------------------------------------------------------
  def level=(level)
    # Check up and down limits
    level = [[level, $data_actors[@actor_id].final_level].min, 1].max
    # Change EXP
    self.exp = @exp_list[level]
  end
  #--------------------------------------------------------------------------
  # * Learn Skill
  #     skill_id : skill ID
  #--------------------------------------------------------------------------
  def learn_skill(skill_id)
    if skill_id > 0 and not skill_learn?(skill_id)
      @skills.push(skill_id)
      @skills.sort!
    end
  end
  #--------------------------------------------------------------------------
  # * Forget Skill
  #     skill_id : skill ID
  #--------------------------------------------------------------------------
  def forget_skill(skill_id)
    @skills.delete(skill_id)
  end
  #--------------------------------------------------------------------------
  # * Determine if Finished Learning Skill
  #     skill_id : skill ID
  #--------------------------------------------------------------------------
  def skill_learn?(skill_id)
    return @skills.include?(skill_id)
  end
  #--------------------------------------------------------------------------
  # * Determine if Skill can be Used
  #     skill_id : skill ID
  #--------------------------------------------------------------------------
  def skill_can_use?(skill_id)
    if not skill_learn?(skill_id)
      return false
    end
    return super
  end
  #--------------------------------------------------------------------------
  # * Change Name
  #     name : new name
  #--------------------------------------------------------------------------
  def name=(name)
    @name = name
  end
  #--------------------------------------------------------------------------
  # * Change Class ID
  #     class_id : new class ID
  #--------------------------------------------------------------------------
  def class_id=(class_id)
    if $data_classes[class_id] != nil
      @class_id = class_id
      # Remove items that are no longer equippable
      unless equippable?($data_weapons[@weapon_id])
        equip(0, 0)
      end
      unless equippable?($data_armors[@armor1_id])
        equip(1, 0)
      end
      unless equippable?($data_armors[@armor2_id])
        equip(2, 0)
      end
      unless equippable?($data_armors[@armor3_id])
        equip(3, 0)
      end
      unless equippable?($data_armors[@armor4_id])
        equip(4, 0)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Change Graphics
  #     character_name : new character file name
  #     character_hue  : new character hue
  #     battler_name   : new battler file name
  #     battler_hue    : new battler hue
  #--------------------------------------------------------------------------
  def set_graphic(character_name, character_hue, battler_name, battler_hue)
    @character_name = character_name
    @character_hue = character_hue
    @battler_name = battler_name
    @battler_hue = battler_hue
  end
  #--------------------------------------------------------------------------
  # * Get Battle Screen X-Coordinate
  #--------------------------------------------------------------------------
  def screen_x
    # Return after calculating x-coordinate by order of members in party
    if self.index != nil
      return self.index * 90 + 300
    else
      return 0
    end
  end
  #--------------------------------------------------------------------------
  # * Get Battle Screen Y-Coordinate
  #--------------------------------------------------------------------------
  def screen_y
    return self.index * 70 + 170 
  end
  #--------------------------------------------------------------------------
  # * Get Battle Screen Z-Coordinate
  #--------------------------------------------------------------------------
  def screen_z
    # Return after calculating z-coordinate by order of members in party
    if self.index != nil
      return 4 - self.index
    else
      return 0
    end
  end
end

zum Lesen den Text mit der Maus markieren


Dein Window_PartyCommand mit dem:
Spoiler

Ruby 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
41
42
#==============================================================================
# ** Window_PartyCommand
#------------------------------------------------------------------------------
#  This window is used to select whether to fight or escape on the battle
#  screen.
#==============================================================================
 
class Window_PartyCommand < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 260, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.back_opacity = 160
    @commands = ["Fight", "Escape"]
    @item_max = 2
    @column_max = 2
    draw_item(0, normal_color)
    draw_item(1, $game_temp.battle_can_escape ? normal_color : disabled_color)
    self.active = false
    self.visible = false
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #     color : text character color
  #--------------------------------------------------------------------------
  def draw_item(index, color)
    self.contents.font.color = color
    rect = Rect.new(0 + index * 100 + 4, 0, 128 - 10, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(rect, @commands[index], 1)
  end
  #--------------------------------------------------------------------------
  # * Cursor Rectangle Update
  #--------------------------------------------------------------------------
  def update_cursor_rect
    self.cursor_rect.set(0 + index * 100, 0, 128, 32)
  end
end
zum Lesen den Text mit der Maus markieren
Nur noch selten hier.

'Til now, I always let people walk all over me!
From now on, if anyone makes fun of me, I'll kill 'em! Just like that!

Ähnliche Themen

Social Bookmarks