Ergebnis 1 bis 18 von 18

Thema: Suche nach Copy-Actors-Scrypt

  1. #1

    Suche nach Copy-Actors-Scrypt

    Hallo, ich suche nach einem Scrypt, mit dem ich bereits erstellte Actors während dem Spiel Klonen kann, so dass ich, wenn ich will, dass Z.B. der erste Actor, den ich gemacht habe, 4 mal in meiner Truppe ist, ihn nicht 4 mal zu machen brauche.
    Also dieses Script, nach dem ich suche soll einen der Actor Kopieren, ihm eine neue, ID geben (die ich dann in eine Variable abspeichern kann), und ihn dann zu behandeln wie einen eigenen Actor, dass Held 1 und die Kopie von Held 1 auf verschiedenen Leveln sein Können, verschiede Skills, sowas halt.

    Ach ja, da es dann ja auch nicht besser geht, würde ich mich auch freuen, wenn mir jemand erklärt, wie man mit Variablen bestimmte Actor der Truppe hinzufügt oder was auch immer (ich denke ja mal das man das doch irgendwie mit irgendeinem Script befehl machen kann(?)).

    Oh, und noch eine Frage, ist es möglich einen Switch oder ein Common Event zu Aktivieren, wenn ein bestimmter Actor z.B. ein bestimmtes Level erreicht oder ein bestimmtes Item benutzt, oder eine Bestimmte Rüstung/Waffe/etc. trägt oder er einen bestimmten Skill beherrscht oder einsetzt (Das währe dann nämlich um einiges Praktischer, als einen Haufen von Commen Event Befehlen zu machen, die sich onehin nur in den verwendeten Variablen unterscheiden, bzw. würde dass ja auch bei einigen garnicht richtig funktionieren)?

    Und noch eine Frage zum Abschluss, gibt es irgendeine Möglichkeit mit einer Truppe von dem momentanen Spielstand gegen eine andere Gruppe aus einem anderen Save zu kämpfen? Allein gegen den Computer (mit einer AI, die alles zufällig auswähl, wenns nicht anders geht) oder im Hotseat gegen einen anderen Spieler? Ist soetwas möglich? Wenn nein, ok!


    Ok, dass ist einiges, nach dem ich da frage, einiges mehr als ich jetzt in den Titel geschrieben habe, aber ich würde mich Freuen, wenn mir irgendwer helfen würde.

  2. #2
    bezüglich der ersten beiden absätze:

    Code:
    class Game_Actor
      attr_accessor :exp_list
      attr_accessor :skills
      attr_accessor :states
      attr_accessor :states_turn
      attr_accessor :current_action
      def clone
        klon = super
        klon.exp_list = @exp_list.clone
        klon.skills = @skills.clone
        klon.states = @states.clone
        klon.states_turn = @states_turn.clone
        klon.current_action = Game_BattleAction.new
        return klon
      end
      def actor_id
        return @actor_id if @neue_id.nil?
        return @neue_id
      end
      def actor_id=(n)
        @neue_id = n
      end
    end
    
    class Game_Actors
      def []=(actor_id,actor)
        actor = actor.actor_id if actor.is_a?(Game_Actor)
        @data[actor_id] = @data[actor].clone
        @data[actor_id].actor_id = actor_id
        return @data[actor_id]
      end
      def [](actor_id)
        if actor_id > 999
          return nil
        end
        if @data[actor_id] == nil
          return nil if $data_actors[actor_id].nil?
          @data[actor_id] = Game_Actor.new(actor_id)
        end
        return @data[actor_id]
      end
    end
    über main einfügen und genießen (soweit es möglich ist...habs nicht ausführlich getestet :/)
    den helden klont man per call script
    Code:
    $game_actors[neue ID] = id des zu klonenden helden
    oder
    $game_actors[neue ID] = der zu klonende held
    
    Bsp:
    
    $game_actors[9] = 1 #klont den ersten helden in der DB (Arshes ftw)
    oder
    $game_actors[9] = $game_party.actors[1] #klont den 2. helden in der party ($game_party.actors[0] wäre der erste held)
    neue helden fügt man der party so zu:
    Code:
    $game_party.add_actor(ID in der DB)
    um es per vairable zu machen, einfach in den klammern $game_variables[ID] einfügen
    Bsp
    Code:
    $game_party.add_actor($game_variables[1])
    einen helden entfernt man genauso. nur mit remove_actor statt add_actor.

    bezüglich des 3. absatzes:
    ja es ist möglich...
    aber ich glaub ich versteh nicht ganz, was du wissen willst.
    wie man level, rüstung, skills etc der neuen helden herausfindet?

    bezüglich letzten absatzes:
    grundsätzlich lässt sich alles machen!
    allerding muss man bedenken, dass ein monster nicht das selbe wie ein held ist!
    (allein schon weil helden keine ki einstellungen haben wie normale gegner)
    ein weiteres problem ist, dass man das kampf system ein wenig umschreiben müsste um einem spieler zu ermöglichen, die aktionen des gegners zu steuern.
    wenn du willst, kann ich mal probieren so etwas zu schreiben. musst nur sagen ob der gegner vom computer oder vom 2. spieler gesteuert wird...oder sogar beides...und man wählt es im spiel aus

  3. #3
    Hey, ich hätte nicht gedacht, dass mir jemand so schnell antwortet. Danke, ich probier dein Skript dann gleich mal aus.

    Zum Dritten Absatz: Ich will eigentlich nur wissen, ob ich irgendwie einen Switch Bzw. ein Common Event starten kann, wenn ein Bestimmter Held etwas bestimmtes Macht (z.B. wenn er ein Item Benutzt oder er ein Bestimmtes Levell bekommt oder mit etwas bestimmten ausgerüstet ist), und das möglichst ohne einen Switch oder ein Common Event dafür verschwenden zu müssen.

    Zum letzten Absatz: Kannst du echt sowas schreiben? Wenn du so ein Skript für mich - und wahrscheinlich andere, die es hier finden werden - schreiben willst, dann bevorzugt mit den Möglichkeiten gegen KI und im Hotseat (o.ä.) gleichermaßen zu spielen. Ich denke die KI muss dabei nicht sonderlich anspruchsvoll sein, sie muss höchstens wissen, wann sie z.B. Heil Zauber oder so verwenden muss, aber mit völlig zufälligen Aktionen währe die KI eigentlich auch schon OK, der Spieler währe ihr gegenüber dann nur eben strategisch im Vorteil, aber das ist ja eigentlich nicht sonderlich schlimm.

    edit: soweit, wie ich das Skript bisher getestet hab, funktioniert es einwandfrei. Ich hätte nur eine Frage, wie kann man denn per Script Level Parameter etc. verändern, da ich es, zumindest wenn ich nicht mit lauter leeren Actors arbeiten will, ja nicht über normale Event Befehle machen kann?

    Geändert von OneEyeShadow (06.08.2009 um 20:49 Uhr)

  4. #4
    level, paramameter etc änderst du per held.eigenschaft = neuer wert
    held durch $game_actors[ID] oder $game_party.actors[Position-1] ersetzen.
    eigenschaft durch eines der folgenden ersetzen:

    maxsp
    maxhp
    int
    dex
    str
    agi
    level
    exp

    Bsp:
    $game_actors[9].level = 10 <-held erreicht sufe 10
    $game_actors[9].level += 1 <- level wird um 1 erhöht. (-= würde es um 1 herab setzen)

    bei skills und ausrüstungen funktioniert es ein wenig anders.
    für skills musst du nach dem helden .learn_skill(ID) bzw .forget_skill(ID) einfügen und für rüstungen .equip(Position,ID)
    Positionen sind:
    0 => Waffe
    1 => Schild
    2 => Kopf
    3 => Körper
    4 => Accessoir
    ID ist die ID der Waffe/Rüstung/Skill in der DB
    wenn ID gleich 0 ist, wird die rüstung entfernt.

    Bsp
    $game_actors[1].equip(0,1)
    in einem RTP Spiel würde Arshes mit dem Bronzeschwert ausgerüstet werden.


    BEim Kampfscript, fehlt bisher noch der Multiplayer, aber gegen einen Spielstand zu kämpfen funktioniert schon.

    In den ersten Zeilen gibt die Zahl die ID der Truppe an, die einen bestimmten Spielstand läd.
    Im Moment würde, die erste Truppe den ersten Spielstand laden, die 2. den 2. etc.
    Auf diese Weise kannst du auch schon über Battle Test gegen Spielstände kämpfen.
    Existiert ein Speicher nicht, wird die ursprüngliche Truppe als Gegner eingesetzt.

    Da du die ersten Truppen vermutlich schon längst verwendest, kannst du ohne weiteres die Zahlen durch noch unbenutze Truppen ersetzen.
    Falls bei dir die Speicherdateien anders heißen (manche Scripte benutzen andere Speicher und die 1.01 version benutzt die endung .sav statt .rxdata) kannst du einfach die Dateinamen hinter den Zahlen verändern.
    Für den Fall, dass du ein Script verwendest, dass mehr als 4 Speicherstände ermöglicht, kannst du die Liste auch ohne weiteres durch zb 5 => "Save5.rxdata" erweitern (Bedenke aber, dass dann nach Save4.rxdata ein Komma gehört )

    Die Zeilen darunter gehören zu den KI Einstellungen. Du kannst sie deinen Wünschen entsprechend verändern.
    HEAL = % der HP ab wann geheilt wird. Achtung gilt für die HP des Skillanwenders.
    Wenn ein Partymitglied am sterben ist und der Heiler noch volle Leben hat, wird er selbst bei einer Einstellung von 99 seinen Partner verrecken lassen!
    ATTACK = Zahl von 1-10 Die Warscheinlichkeit normal anzugreifen statt einen Skill zu verwenden.
    (Rating der Skills ist 5. Heilzauber haben ein Rating von 10)
    GOLD = Menge des zu gewinnenden Goldes pro gegn. Held
    EXP = Erfahrungspunkte pro gegn. Held
    MINSP = Ab welcher SP Menge nur noch normal angegriffen wird.

    Script:

  5. #5
    Hey danke, aber wie kann ich denn das Script jetzt im Spiel aufrufen?
    Oh, und noch eine Frage, ist es irgendwie Möglich, zwischen den verschiedenen Saves Items, Rüstungen, Variablen Werte, oder Actor zu übertragen? Währe nämlich auch ziemlich praktisch ...

    PS. Ich finde es wirklich unglaublich, dass du in so wenig Zeit ein funktionierendes Skript (ich konnts noch nicht ausprobieren, denk aber mal, dass es funktioniert) dieser größe (324 Zeilen!) geschrieben hasst.

    Geändert von OneEyeShadow (07.08.2009 um 19:23 Uhr)

  6. #6
    du rufst es auf, indem du einfach einen kampf gegen die truppe, die du bei
    Code:
    Troop2Save = {
    1 => "Save1.rxdata",
    2 => "Save2.rxdata",
    3 => "Save3.rxdata",
    4 => "Save4.rxdata"
    }
    angegeben hast, startest.

    (das andere kampfscript damit ersetzen, falls dus bereits eingebaut hast)



    natürlich könnte man ein script machen, dass items oder helden tauscht. man muss sich allerdings überlegen ob das wirklich so praktisch wäre.
    so etwas kann zb schnell das balancing des spiels zerstören.
    und was ist wenn 2 geschwister das spiel spielen und der bruder/die schwester einfach mal ein paar seltene gegenstände vom spielstand des anderen klaut :/
    (das ist echt nicht lustig...ich hab meinem kleinem bruder meine pokemon edition ausgeliehen und er hat meine lv 100er pokemon vertauscht -.-)
    auch ein problem ist, dass man spielstände einfach kopieren kann und somit seine items verdoppelt.

  7. #7
    Cool, das Script funktioniert wirklich wunderbar.

    Zu deinen Einwänden zum Tauschen verschiedener Dinge: Natürlich kann das Balancing dadurch stark gestört werden, aber nicht, wenn man starke Negativ efekte für zu gute dinge einbaut (wobei sich diese selbstverständlich im Laufe des Spieles immer erhöhen werden, da die eigenen Standarts im Spielverlauf immer höher werden, so kann beispielsweise der getauschte Actor je nachdem, wie weit man im Spiel fortgeschritten ist, die Befehle, die man ihm Gibt häufig verweigern, oder sogar eigene Actor angreifen oder so).
    Aber natürlich währe da noch das Zweite Problem was du erwähnt hast, aber solange der Spieler keine Umwege benutzt, um ans Ziel zu kommen, lässt sie das eigentlich ganz gut lösen, wenn das Spiel startet bekommt eine Variable einen Zufälligen Wert (so zwischen 1 und 10000) und wenn der Spieler den Save nun Kopiert und versucht was auch immer auf seinen Original Spielstand zu Kopieren, wird immer erst die besagte Variable verglichen, sollte diese Gleich sein, so ist kein Tausch möglich. Allerdings würde bei dieser Methode noch der Nachteil bestehen, dass der Spieler sich Was auch immer Holen kann, indem er erst auf einen Fremden und dann wieder auf seinen eigenen überträgt. Da fällt mir allerdings ein, dass man dieses Problem doch rein Theoretisch umgehen könnte, wenn man bei allen Dingen, die man übertragen kann diese Variable automatisch mit gespeichert werden würde, dann könnte man vorm übertragen einfach nachschauen lassen, ob das Item, der Actor oder sonstwas die Gleiche nummer hat wie der Spieler, zu dem sie übertragen würde. So würde ich immerhin versuchen, dass Problem zu lösen, zwar auch nicht die beste lösung, aber immerhin würde es damit gehen, sofern das möglich ist ...

  8. #8
    an sone spielstand id für jeden gegenstand hab ich auch schon gedacht. das wäre auch recht einfach umzusetzen. problematisch ist dann aber, dass es einem nicht mehr möglich wäre gegenstände zurück zu tauschen.
    dieses problem gäbe es nicht, wenn diese spielstand id nicht auf die gegenstände übertragen wird. doch in dem fall gäbe es, die von dir genannte möglichkeit, einfach über einen anderen spielstand zu tauschen.
    aber solange es sich nicht gerade um ein online spiel handelt, muss man eh nicht alle cheat möglichkeiten vernichten (sonst wären ja alle 2k(3) spiele mit molebox verschlüsselt ).

    also wenn du willst kann ich dir so ein tauschscript machen. musst mir nur sagen welche sicherheitsmaßnahmen du haben möchtest (keine/id für gegenstände/id für spielstand) und ob ich gleich die gesammte scene scripten soll oder nur ein paar call script commandos, mit denen man herausfindet welche gegenstände ein spielstand hat und mit denen man den tausch ausführt. in dem fall könntest du den gesammten rest per common events/eigene menüs regeln und vlt noch nette animationen wärend des tausches einbringen
    ich könnte auch versuchen beides zu vermischen. also dass du nur ne common event id angibst un dieses common event dann die animation enthält und ausgeführt wird, wenn etwas getauscht wird (und der rest wie zb das menü wird per rgss gehandhabt.)

  9. #9
    Also, wenn du ein Skript basteln willst, dass das ermöglicht, lass mir ncoh die Freiheit alles mit Callscripts selbst regeln zu können, also einzelne Variablenabfragen von Item-, Actor- und den normalen Spiel Variablen, sowie die Fähigkeit diese einzeln auf den anderen Spielstand, und von diesem Spielstand auch etwas auf den anderen, zu kopieren. Ich habs nicht so gern wenn durch ein Script wirklich alles geregelt wird, ich brauch von dem Script nur seine Hauptfunktion, den Rest mach ich dann mit Events, auch dass abfragen nach ID's und so würde ich gerne einzeln mit Callscripts in Events machen (Da ich nicht gut Scripten kann, bin ich so nämlich beim Gestalten des Spiels um einiges flexibler, wenn das Script wirklich nur das nötigste macht, also das, was ich nicht mit normalen Events regeln kann).
    Also ich persönlich tendire zu der Item-, Actor-, wasauchimmer-ID, da die möglichkeiten zu schummeln so doch ziemlich reduziert sind, allerdings hätte ich auch gerne die Möglichkeit diese ID jederszeit umtauschen zu können, da dies auch von vorteil sein könnte. Wenn's nicht zu viel Aufwand ist.

    PS. Ich habs noch nicht ausprobiert, aber funktioniert dein Save-Party Script eigentlich nur beim Standart Kampf System, oder bei jedem, dass die normalen Monstertruppen benutzt?

    PPS. Wie lautet eigentlich der Code, um einer Variable Die ID eines bestimmten Gegners im Kampf zuzuweisen?

    PPPS. Gibt es auch eine Möglichkeit im Spiel die Encounter Troop und die Steps Everage auf einer Karte, bis man ebendiese verlässt, zu ändern.

    Geändert von OneEyeShadow (09.08.2009 um 20:58 Uhr)

  10. #10
    mir ist aufgefallen, dass ich dir noch gar nicht gesagt habe, wie man von ki zu einem menschlichen spieler wechselt :/
    mit einem call script
    Code:
    $game_temp.ki = true
    schaltest du auf computer gesteuerte gegner und mit
    Code:
    $game_temp.ki = false
    auf eine vom spieler gesteuerte.
    leider hat der maker nen bug, dass call scripts, die auf = false enden oftmals das spiel zum aufhängen bringen.
    probier deshalb besser
    Code:
    $game_temp.ki = false
    a = "b"
    das soltle wenn möglich direkt vor dem kampf stehen, weil diese einstellung nicht mit gespeichert wird!

    außerdem hab ich einen kleinen fehler in meinem script gefunden.
    in zeile 430 und 438 muss
    [cdoe]if $scene.turn % 2 == 0[/code]
    durch
    Code:
    if $scene.turn % 2 == 0 or $game_temp.ki
    ersetzt werden.
    ansonsten kann es zu fehlern bei der zielauswahl kommen.

    @PS
    das kann man so nicht sagen.
    ich habe einige stellen des standart ks neu schreiben müssen. wenn das andere ks nur das standart ks verändert und meine veränderten stellen nur per alias manipuliert oder sie komplett in ruhe lässt, funktioniert es. ansonsten jedoch nicht.
    letztendlich würde ich sagen: probieren geht über studieren

    @PPS
    falls du die id des gegners in der datanbank meinst:
    Code:
    $game_variables[ID] = $game_troop.enemies[Index].id
    ID durch variablen id un index durch den index des gegners ersetzen.
    der gegner, der als erstes einer truppe hinzugefügt wurde, hat den index 0,
    der 2. hat den index 1 usw.

    @PPPS
    Code:
    class Game_Map
      def encounter_step=(n)
        @map.encounter_step = n
      end
      def encounter_list=(n)
        @map.encounter_list = n
      end
    $game_map.encounter_step = neuer wert
    $game_map.encounter_list = Liste mit IDs
    "neuer wert" sollte klar sein
    Liste mit IDs wäre zb
    [1,4,9]
    in diesem fall würde man gegen die erste, vierte oder neunte truppe kämpfen.
    du kannst auch per
    $game_map.encounter_list.push(ID)
    nur eine truppe hinzufügen oder per
    $game_map.encounter_list.delete(ID)
    eine truppe entfernen.
    (Achtung habs nicht getestet, soltle aber funktionieren)


    Edit:
    Tausch Script:

    funktionen:

    Code:
    Tausch.set_file(name oder id)
    name muss der Dateiname sein zb "Save1.rxdata" <- Achtung mit "
    id muss die nummer des Speichers sein (normalerweise eine zahl von 1-4)
    Wählt den Speicher aus, mit dem getauscht werden soll/von dem die informationen gesammelt werden.
    Ich empfehle dir diesen Befehl in der Script option eines conditional branch zu verwenden. wenn der speicher nicht existiert, wird der else zeig ausgeführt. da kannste dann zb ne message mit "Speicher nicht vorhanden" oder so reinsetzen
    (Edit: else zweig wird ebenfalls ausgeführt, wenn ID des Spiel = ID des gespeicherten Spiels)

    Code:
    Tausch.get_items(start,ende)
    setzt auf die variablen start bis (einschließlich) ende die anzahl der items (fängt immer mit dem item der id 1 an, egal welchen wert start hat).

    Code:
    $game_variables[vID] = Tausch.get_item(iID)
    weist der variable vID die anzahl der items mit der ID iID zu.

    Code:
    Tausch.trade_item(eigene_ID,andere_ID,eigene_Menge,andere_Menge)
    tauscht eigene_Menge items mit der ID eigene_ID gegen andere_Menge items des anderen Speichers mit der ID andere_ID.
    diesen Befehl am besten ebenfalls in einem Conditional Branch benutzen, da der else Zweig ausgeführt wird, wenn einer der beiden nicht genügend items hat.

    Diese 3 Item funktionen gibt es natürlich noch für waffen unf rüstungen.
    Dazu musst du einfach item durch weapon oder armor ersetzen. (bzw items durch weapons oder armors)

    Code:
    Tausch.get_actors(start,ende)
    weist den variablen von start bis (einschließlich) ende die id der helden in der party zu.
    nettes Bsp:
    Code:
    @>Script: Tausch.get_actors(1,4)
    @>Text: Der Speicher hat die Helden \n[\v[1]], \n[\v[2]],
    \n[\v[3]] und \n[\v[4]] in der Party
    Code:
    Tausch.actors
    gibt die helden in der party des speichers zurück.
    mit Tausch.actors[0].name erhältst du zb den Namen des 1. Helden.
    was du sonst noch alles mit anstellen kannst (Eigenschaften etc) kannst du ja in der liste ein paar posts weiter oben lesen.
    man sollte vielleicht noch sagen, dass veränderungen an den helden nicht gespeichert werden, bis etwas getauscht wird.
    das liegt daran, dass diese option nur für das auslesen von daten ist

    nochmal Edit:
    mähhh -.-
    jetzt hab ich doch glatt dieses sicherungssystem mit der ID vergessen.
    werds nochmal rein editen...gleich...wenn ichs gescriptet hab ._.

    wieder Edit:
    so ist drinne.
    allerdings konnte ich es nicht mit der ID für jeden gegenstand machen, weil nur gespeichert wird, wie viele items (auch waffen etc) man von welcher sorte hat.
    man kann also nur den gesammten stapel eine ID zuweisen. wäre blöd, wenn zb von allen 10 tränken gesagt wird sie seien von einem anderen spielstand, nur weil man einen einzigen durch nen tausch bekommen hat.
    (bzw man kann somit die id des eigenen spielstandes bei items löschen - nicht gerade sicher :/)

    über $game_party.spiel_id = neue Zahl kannst du deine id zu testzwecken verändern.

    Geändert von Shining Advances (10.08.2009 um 13:15 Uhr)

  11. #11
    Danke, das Skript funktioniert wirklich gut, aber kannst du nicht auch noch hinzufügen, dass von den Gegnern die HP und SP auch noch sichtbar sind? Denn ich sonst ist der eine Spieler bein einem HotSeat Kampf ziemlich im Nachteil, da er keine Ahnung hat, wie viel HP und SP seine Actors gerade haben.

    Oh, und ich hab mal wieder ein paar fragen zu ein paar zeilen Codes, die ich brauche:
    1. wie kann ich durch Code die HP/SP eines Actors verändern?
    2. kann ich irgendwie per Code die Skills eines Enemies von der Datenbank abfragen und dann in eine Variable speichern?
    3. Wie kann ich einem Actor einen Skill per Variable zuweisen?
    4. Kann ich irgendwie per Skript die Character Grafik (Ich meine die, die auf der Karte animiert wird) und evtl. auch die andere Grafik eines Actors verändern?
    5. Ist es Möglich einen bestimmten Actor eine (besser zwei bzw. drei^^) Variable verändern zu lassen oder ihm einen Skill hinzuzufügen, Parameter, Grafik, States, Klasse und dergleichen zu ändern wenn er bspw. ein bestimmtes Level erreicht oder auch einen Skill ausführt oder irgendeines seiner Parameter einen bestimmten Wert erreicht oder irgendein Switch umgelegt ist oder so, also ich meine irgendwie direkt, so dass das auch mit diesem CopyActor Skrypt mitkopiert werden könnte, und ich kein Commen event auf Parallel Proces zu heben brauche.

    PS. Irgendwie funktioniert das mit dem Encounter umändern bei mir nicht so richtig ...

    Geändert von OneEyeShadow (10.08.2009 um 15:41 Uhr)

  12. #12
    die anzeige unten sollte eigentlich wechseln, sobald der andere spieler am zug ist.


    1)
    kommt darauf an, ob die die maximalen hp/sp meinst oder die aktuellen:
    $game_actors[ID].maxhp = wert
    $game_actors[ID].maxsp = wert
    $game_actors[ID].hp = wert
    $game_actors[ID].sp = wert


    2)
    gegner besitzen keine skills sondern nur aktionen. deshalb muss man jede aktion abfragen, ob sie einen skill ausführt

    Code:
    skills = []
    for action in $data_enemies[ID].actions
    if action.kind == 1
    skills.push(action.skill_id)
    end
    end
    $game_variables[vID] = skills[nr].to_i
    ID -> ID des gegners
    vID -> ID der variable
    nr -> der wievielte skill des gegners (fängt bei 0 an)

    3)
    $game_actors[ID].learn_skill($game_variables[vID])


    4)
    Code:
    $game_actors[ID].set_graphic("character grafik",character hue,"battler grafik", battler hue)
    $game_player.refresh
    hue ist diese veränderung der farben. hat nen wert zwischen 0-255
    bei den grafik namen an die " denken!

    wenn du bei Game_Actor vor character_name (zeile 13) das attr_reader durch attr_accessor ersetzt, aknnst du per
    Code:
    $game_actors[ID].character_name = "grafikname"
    $game_player.refresh
    kannst du direkt die lauf grafik eines helden ändern.

    ($game_player.refresh sorgt dafür, dass die änderung auf der karte sichtbar wird, wenn der held an 1. position in der party ist.)

    5)
    am einfachsten wäre es bei Game_Actor hinter zeile 468
    (also nach
    Code:
              learn_skill(j.skill_id)
            end
          end
    )
    folgendes einzufügen:
    Code:
          if self.name == "Helden Name"
            if self.eigenschaft == wert
              self.eigenschaft = neuer wert
            end
          end
    Bsp:
    Code:
          if self.name == "Arshes"
            if self.dex == 100
              self.int = 200
            end
          end
    in diesem beispiel würde der held arshes, sobald seine dexterity (heißt das so?) 100 erreicht einen intelligenz wert von 200 erhalten.
    diese abfrage geschiht nur bei einem level up (davon ausgehend, dass nur dann sich seine werte verändern)
    du kannst danach das selbe einfach nochmal mit anderen helden namen einfügen, falls noch bei anderen eigenschaften verändert werden sollen.

    un wegen dem encounter...ich hab aus versehen am ende ein end vergessen.
    korrigierte version:
    Code:
    class Game_Map
      def encounter_step=(n)
        @map.encounter_step = n
      end
      def encounter_list=(n)
        @map.encounter_list = n
      end
    end

    PS:
    fahre morgen für 3 tage weg.
    falls es also noch was gibt, musst du hoffen, dass jemand anderes hilft oder geduldig sein

  13. #13
    Danke für den Code, kannst du mir nochmal erklären, wie das mit dem Encounter gemacht werden muss, bei mir kommt da immer ne Fehlermeldung.
    Achja, bei deinem Save_Party Script hab ich nen kleinen Bug entdeckt, wenn man einen normalen Kampf gewinnt setzt es das Level aller Kämpfer wieder auf eins, und anstatt EXP zu bekommen, verlieren sie alle EXP, die sie hatten.

    Edit: Kannst du noch das normale Menü so verändern, dass man statt den Map Grafiken die Battler Grafiken der Actors sieht (auch bei den ganzen untermenüs).

    Und kannst du das Battle Script so verändern, dass man immer nur mit einer bestimmten (durch eine Variable bestimmt) Anzahl an Actors gleichzeitig kämpfen kann, und sobald einer von diesen Tod ist in ein auswahlfenster wechselt, wo man einen anderen Actor (Mit Battler Graphic) aus der Party auswählen kann der dann weiterkämpft, also mit dem, der KO ist ausgetauscht wird, und dementsprechend auch die Funktionen von Skills und Items, die als Ziel One Ally haben entsprechend funktionieren lässt, und das man dann Game Over ist, wenn alle Party Member KO sind, und wenn du eine Anzeige für die Gegnerischen HP, SP und einen bestimmten Wert reinbaust, die man per Switch ein und ausschalten kann?


    Ich weiß, dass ist etwaaaas viel, aber für mein Aktuelles Project brauche ich diese Scripts, ich würde mich wirklich freuen, wenn du die scripten könntest.

    Geändert von OneEyeShadow (13.08.2009 um 16:30 Uhr)

  14. #14
    was denn fürne fehlermeldung....

  15. #15
    Das übliche: "Syntax error occurred while running Script", oder so ähnlich.

    Das liegt warscheinlich daran, dass ich nicht so genau weiß, wie ich das verwenden muss ...

  16. #16
    ja einfach im callscript sowas schreiben
    $game_map.encounter_step = 100 # jett kommen wenig gegner
    oder
    $game_map.encounter_list = [1,2,3] # jetzt kommen die ersten drei troops

    musst nur auf den zeilenumbruch achten,
    nicht das sowas passiert:
    Code:
    $game_map.encounter_list = [1,2
    ,3]
    #sondern sowas
    $game_map.encounter_list =
    [1,2,3]
    #oder sowas
    $game_map.encounter_list = [1,2,
    3,4,5,6,7,8,9,12,22,33,
    44]
    das komma darf nie am anfang einer zeile stehen

  17. #17
    machst du ein pokemon spiel? (das mim im kampf austauschen kommt mir so bekannt vor^^)
    war deine frage, ob das script auch mit anderen ks funktioniert auf das pokemon starterkit bezogen?

    wie auch immer....
    das mit dem austauschen sollte nicht zu schwer sein. (soll der gegner eigentlich auch austauschen?)
    allerdings weiß ich noch nicht so recht, wie ich das mit dem multiplayer ermöglichen soll.
    gib mir ein bisschen zeit^^

    bezüglich exp
    du musst folgendes aus dem kampf script löschen:
    Code:
      def exp
        return EXP
      end
    müsste in zeile 322-324 sein.
    danach musst du folgendes am ende hinzufügen:
    Code:
    class Game_Battler
      def wexp
        return exp
      end
    end
    class Game_Actor
      def wexp
        return EXP
      end
    end
    und in scene_battle 2 in zeile 149
    Code:
    exp += enemy.exp
    durch
    Code:
    exp += enemy.wexp
    ersetzen.

    bezüglich grafiken:
    Window_Base zeile 108-114 mit folgendem ersetzen
    Code:
      def draw_actor_graphic(actor, x, y)
        bitmap = RPG::Cache.battler(actor.character_name, actor.character_hue)
        cw = bitmap.width
        ch = bitmap.height
        src_rect = Rect.new(0, 0, cw, ch)
        self.contents.blt(x - cw / 4, y - ch / 2, bitmap, src_rect)
      end
    aber bedenke, dass die grafiken jetzt nicht mehr 100% rein passen!

  18. #18
    Hallo Shining Advances, wieder zurück?


    Zitat Zitat
    machst du ein pokemon spiel? (das mim im kampf austauschen kommt mir so bekannt vor^^)
    war deine frage, ob das script auch mit anderen ks funktioniert auf das pokemon starterkit bezogen?
    Ich mach so was ähnliches, ohne Pokemon, aber mit gewissen anderen Monstern, aber meine Frage auf das Kampfskript war aus reiner neugier.

    Zitat Zitat
    das mit dem austauschen sollte nicht zu schwer sein. (soll der gegner eigentlich auch austauschen?)
    Ja, sollte er schon, aber am besten wärs, wenn er das nach zufallsprinzip oder über eine festgelegte reienfolge macht, und wenn alle Enemies x und y Koordinaten dann über Variablen bestimmt werden würden und wenn man per Variable die Anzahl der gleichzeitig aktiven Battler (beider seiten) bestimmen könnte ...

    Zitat Zitat
    bezüglich grafiken:
    Window_Base zeile 108-114 mit folgendem ersetzen
    Ah, danke, jetzt habe ich das Problem auch nicht mehr, danke.

    PS: Das Spiel, das ich gerade am makern bin kannst du dir, wenn du lust hast, oder neugierig bist, hier mal ansehen, evtl. (eher: ganzbestimmt) findest du dazu ja noch ein paar Verbesserungsvorschläge.

    Geändert von OneEyeShadow (14.08.2009 um 14:41 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •