• Anmelden

Tharuel

Ankömmling

  • »Tharuel« ist der Autor dieses Themas

Motto: Vivere Militare Est

  • Nachricht senden

1

Mittwoch, 2. September 2009, 07:25

Schrittzähler zurücksetzen?

Ich arbeite zur Zeit an einer alternative für die Zufallskämpfe auf meiner Weltkarte, da das Standart-Encounter-System irgendwie für den Popo is.
Ich hab mir das folgendermaßen Gedacht:
Ich mache ein Parallelprozess und setze eine Variable gleich den Schritten, die ja von Haus aus vom RMXP mitgezählt werden.
Ich würde dann eine Abfrage machen > wenn die Schritte auf 30 sind, dann startet ein Kampf.
Nun wäre das Problem, dass die Schritte dann auf 30 bleiben. Ich kann ja die Variable ändern wie ich will, die vom RMXP gezählten Schritte bleiben 30.

Gibt es eine Möglichkeit den Schrittzähler auf 0 zurückzusetzen?

PS: Es gibt sicher eine andere Lösung dafür, auf die ich aber nich komme, was definitiv an der Uhrzeit liegt. :D
Wäre auch für jeden "Alternativen-Vorschlag" dankbar. ^^

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Tharuel« (3. September 2009, 03:22)


effeff

Schlitzohr

Motto: Man muss nicht alles mit RGSS machen, Eventtechnik for the world!

  • Nachricht senden

2

Mittwoch, 2. September 2009, 15:50

yehaa klappt, wieder was gelernt :D

also das geht mit mod :D

so hab ich es gelöst:

variable 1 = anzahl schritte
variable 2 = variable 1 (überprüfung)
Variable 2 = mod 30( das ist bei set variable wo + - * / steht das letze heißt)
Bedingung if variable 2 = 0 dann KAMPF.

weil, das mod gibt den rest von Zahl durch 30 an, wenn der 0 ist heißt die zahl ist durch 30 teilbar ( also schritte 30,60,90,120 usw, da kommt überall 0 raus und nur da :))

muss weg nähere erklärungen bei nachfrage oder durch google :D

Tharuel

Ankömmling

  • »Tharuel« ist der Autor dieses Themas

Motto: Vivere Militare Est

  • Nachricht senden

3

Donnerstag, 3. September 2009, 02:38

An sich ne gute Idee, aber ich häng da fest, im wahrsten Sinne des Wortes.
Wenn Variable 1 = 30 ist, dann ist Variable 2 = 0.
Es beginnt der Kampf. Nach dem Kampf ist Variable 1 immernoch = 30, was dafür sorgt, dass Variable 2 immernoch 0 bleibt.
Der Kampf startet wieder und wieder. Man hängt in einer Schleife fest.
Ich glaub ich hab jetz wirklich alles probiert, nichts hilft.

Es fällt immerwieder auf den Schrittzähler zurück, da dieser ja permanent aktualisiert wird und damit auch Variable 2 dauerhaft im Griff hat.

Es müsste doch eine Möglichkeit geben, den Schrittzähler per Script zurückzusetzen. :/

4

Donnerstag, 3. September 2009, 02:52

Ja, man kann den Stepcounter zurück setzen.
Als neues Script über Main einfügen:

Ruby Quellcode

1
2
3
4
5
class Game_Party
  def schritte_auf_null
    @steps = 0
  end
end
Und dann in ein Call_Script

Ruby Quellcode

1
$game_party.schritte_auf_null

Das ist aber nicht zu empfehelen. Wenn du die Lösung von effeff nicht willst, kannst du natürlich auch eine Scriptlösung haben:
Spoiler: Script Lösung
Als neues Script über Main einfügen

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
class Game_Player < Game_Character
  def increase_steps
    super
    # If move route is not forcing
    unless @move_route_forcing
      # Increase steps
      $game_party.increase_steps
      # Number of steps are an even number
      if $game_party.steps % 2 == 0
        # Slip damage check
        $game_party.check_map_slip_damage
      end
      #====================#
      # Ergänzung:
      if $game_map.map_id == 7  # Hier die ID der Weltkarte angeben
        $game_variables[2] += 1 # Varaible Nr.2 erhöhen
        # Falls die Variable 30 ist:
        if $game_variables[2] == 30
          # Command event 5 starten
          $game_temp.common_event_id = 5
          $game_variables[2] = 0
        end
      end
      #====================#
    end
  end
end
Du musst aber noch 3 Werte anpassen, die MapID, auf welcher Map soll es gehen.
VariablenNummer, welche Variable soll zum zählen benutzt werden?
Nummer des Commonevents was ausgelöst wird, wenn die Variable 30 erreicht.
zum Lesen den Text mit der Maus markieren

Tharuel

Ankömmling

  • »Tharuel« ist der Autor dieses Themas

Motto: Vivere Militare Est

  • Nachricht senden

5

Donnerstag, 3. September 2009, 03:21


Wenn du die Lösung von effeff nicht willst, kannst du natürlich auch eine Scriptlösung haben:
Spoiler: Script Lösung
Als neues Script über Main einfügen

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
class Game_Player < Game_Character
  def increase_steps
    super
    # If move route is not forcing
    unless @move_route_forcing
      # Increase steps
      $game_party.increase_steps
      # Number of steps are an even number
      if $game_party.steps % 2 == 0
        # Slip damage check
        $game_party.check_map_slip_damage
      end
      #====================#
      # Ergänzung:
      if $game_map.map_id == 7  # Hier die ID der Weltkarte angeben
        $game_variables[2] += 1 # Varaible Nr.2 erhöhen
        # Falls die Variable 30 ist:
        if $game_variables[2] == 30
          # Command event 5 starten
          $game_temp.common_event_id = 5
          $game_variables[2] = 0
        end
      end
      #====================#
    end
  end
end
Du musst aber noch 3 Werte anpassen, die MapID, auf welcher Map soll es gehen.
VariablenNummer, welche Variable soll zum zählen benutzt werden?
Nummer des Commonevents was ausgelöst wird, wenn die Variable 30 erreicht.
zum Lesen den Text mit der Maus markieren


Ich hab die Hoffnung ja schon fast aufgegeben. Genau sowas hab ich gebraucht. ^^
Funktioniert super.
Vielen dank. =)

Social Bookmarks