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

Kardor

Knappe

  • »Kardor« ist der Autor dieses Themas

Motto: RTP? - Frontview KS? ich finds gut ^^

  • Nachricht senden

1

Freitag, 29. August 2014, 17:03

Handelsware Script gesucht

Hallo, ich bins mal wieder^^

ich bin auf der Suche nach einem Script oder Scriptschnipsel der folgendes bewirken soll.

Wenn ein bestimmter Gegenstand soundso oft verkauft wurde soll der Verkaufswert sinken.
Beispiel:
Spieler verkauft 99 Einheiten Korn zu 100/Stk. wenn erjetzt das nächste mal Korn verkaufen will
ist es nur noch 75/Stk wert.
Das ganze soll sich dann nach einer Anzahl in Stunden wieder "resetten"
Perfekt wäre es wenn das auch umgekehrt ginge sprich der Spieler kauft munter Korn wenn jetzt wieder ein bestimmter
Wert eigekauft wurde steigt der Einkaufswert.
Auch hier sollte ein reset nach einer bestimmten Zeit erfolgen.

wäre cool wenn man es für Itemgruppen / einzelne Items konfigurieren könnte (zB Item Nr. 54-72 sowie Items 2,5,8,10)


Da man bei mir bestimmte Rohstoffe abbauen kann um Geld zu verdienen würde so ein Script dem ganzen
etwas mehr Würze verleihen.

Ich fürchte das dies nicht oder nur unter massivem Aufwand über Events realisierbar ist.
Wenn also jemand eine Idee hat oder weiss wo ich sowas her bekomme wäre ich riesig dankbar.

Ich danke im Voraus für die Mühen und eure Hilfe
Kardor
In Entwicklung: Conjurer - Shadows of the Past
Vorstellung Conjurer
Meinungen und konstruktive Kritik sind immer erwünscht.

Wer bin ich? Und wenn ja wie viele?

Ich kann nicht viel zum Dank anbieten, ausser meiner ehrlichen Meinung
und meiner Zeit zB. als Tester.

2

Sonntag, 31. August 2014, 12:23

Ah, also eine Art Marktwert, der vom tatsächlichen Itempreis nach oben oder unten abweichen kann.

Hey, ein paar Fragen zur Realisierung:
Normalerweise ist der Einkaufspreis der Preis des Items und der Verkaufspreis ist der Preis des Items geteilt durch Zwei.

Soll jetzt Einkaufspreis und Verkaufspreis nurnoch vom variablen Marktwert ausgehen? Oder der Verkaufspreis immernoch nochmal halbiert werden?

Und diese Preiseinschränkung soll nur für bestimmte Items gelten?
Wie soll das Reseten ablaufen? Wirklich Zeit gibt es im Maker standardmäßig ja nicht.

Kardor

Knappe

  • »Kardor« ist der Autor dieses Themas

Motto: RTP? - Frontview KS? ich finds gut ^^

  • Nachricht senden

3

Sonntag, 31. August 2014, 16:41

Ja genau das soll es sein.

Ich möchte in meinem Projekt verschiedene Abbaupunkte (für Erz Korn und etc.) einrichten
die hauptsächlich für das Einkommen des Helden dienen.

Im optimalfall dient der variable Preis nur für bestimmte Gegenstände (die Handelswaren oder sowas weil Heilitems).
Und ja das mit dem 50% Verkaufswert bleibt so.

Tja das mit der Zeit keine Ahnung entweder über Schritte oder über Spielzeit, sprich in 3 Spielstunden ka ob das geht.
In Entwicklung: Conjurer - Shadows of the Past
Vorstellung Conjurer
Meinungen und konstruktive Kritik sind immer erwünscht.

Wer bin ich? Und wenn ja wie viele?

Ich kann nicht viel zum Dank anbieten, ausser meiner ehrlichen Meinung
und meiner Zeit zB. als Tester.

4

Sonntag, 31. August 2014, 18:29

Ok, hier wäre dann das Skript dafür:
Spoiler: Quellcode

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
#==============================================================================
#  Marktsystem für Kardor
#------------------------------------------------------------------------------
# Mit diesem Skript kann für bestimmte Items ein Multiplikator eingeführt
# werden, der beim Handel den Itempreis variieren lässt.
# Die Einstellungen dafür findet man ab Zeile 49, die Syntax ist
#   item_id => prozentwert_beim_start
# Wird für eine Item Id kein Startwert gegeben, wird dieses Item auf dem Markt
# nicht berücksichtigt, sein Preis bleibt also immer so, wie in der Database
# eingestellt.
# 
# HINWEIS:
# 
# Dieses Skript ist ausnahmsweise nicht Plug&Play fertig, sondern es muss im
# Skript Scene_Shop noch etwas geändert werden.
#   In der Methode update_number nach Zeile 294 muss folgende Zeile eingefügt
#   werden:
#       $game_system.adjust_market_value(@item, @number_window.number)
#   Ebenfalls in der Methode update_number, nach Zeile 312 kommt folgendes:
#       $game_system.adjust_market_value(@item, -@number_window.number)
#
# Über den Skriptaufruf
#   item = $data_items[ 789 ]
#   $game_system.market_value[item] = 123
# kann für das Item mit der ID 789, der Marktwert auf 123% geändert werden.
# So kann man den Preis auch zurücksetzen, indem man ihn wieder auf 100% 
# setzt.
#------------------------------------------------------------------------------
# Autor:  Playm
# Datum:  August 2014
# Maker:  XP
# Lizenz: (CC BY-NC-SA 3.0)
#==============================================================================
#    HIER BEGINNT DER KERN DES SYSTEMS
#==============================================================================
#
#==============================================================================
# ** Game_Market_value
#------------------------------------------------------------------------------
#  Verwaltet die Marktwerte der Items, indem für bestimmte Items Multiplika-
#  toren gespeichert werden zwischen 1% und 200%
#==============================================================================
class Game_Market_value
  #--------------------------------------------------------------------------
  # * Setze die Startwerte
  #--------------------------------------------------------------------------
  def initialize
    @item_to_value = {
                       1 => 100,  # Potion beginnt mit 100%
                       3 => 120,  # Full Potion beginnt mit 120%
                       4 => 200   # Perfume beginnt mit 200% (maximum)
                     }
  end
  #--------------------------------------------------------------------------
  # * Berechne den Preis eines Items unter Beruecksichtigung der Marktlage
  #--------------------------------------------------------------------------
  def price(item)
    return item.orginal_price unless @item_to_value.has_key?(item.id)
    return item.orginal_price * (@item_to_value[item.id] / 100.0)
  end
  #--------------------------------------------------------------------------
  # * Ändere den Prozentwert mit dem der Preis eines Items verrechnet wird
  #--------------------------------------------------------------------------
  def []=(item, value)
    return value unless @item_to_value.has_key?(item.id)
    return @item_to_value[item.id] = 200 if value > 200
    return @item_to_value[item.id] = 1   if value < 1
    return @item_to_value[item.id] = value
  end
  #--------------------------------------------------------------------------
  # * Gibt den Prozentwert mit dem der Itempreis verrechnet wird zurück
  #--------------------------------------------------------------------------
  def [](item)
    @item_to_value.has_key?(item.id) ? @item_to_value[item.id] : nil
  end
end
#==============================================================================
# ** Game_System
#==============================================================================
class Game_System
  #--------------------------------------------------------------------------
  # * Attr
  #--------------------------------------------------------------------------
  attr_reader(:market_value)
  #--------------------------------------------------------------------------
  # * Alias
  #--------------------------------------------------------------------------
  alias_method(:org_ini_wo_market_value, :initialize)
  #--------------------------------------------------------------------------
  # * Initialisierung eines neuen Objektes
  #--------------------------------------------------------------------------
  def initialize(*args)
    org_ini_wo_market_value(*args)
    @market_value = Game_Market_value.new
  end
  #--------------------------------------------------------------------------
  # * Passe den Marktwert des Items an
  #--------------------------------------------------------------------------
  def adjust_market_value( item, change )
    @market_value[item] += change
  end
end
#==============================================================================
#    RGSS Anpassungen
#==============================================================================
# ** RPG::Item
#==============================================================================
class RPG::Item
  #--------------------------------------------------------------------------
  # * Alias
  #--------------------------------------------------------------------------
  alias_method(:orginal_price, :price)
  #--------------------------------------------------------------------------
  # * Get Item Price
  #--------------------------------------------------------------------------
  def price
    $game_system.market_value.price(self).to_i
  end
end
zum Lesen den Text mit der Maus markieren
Probier mal, ob es das tut, was Du brauchst. :hi:

Kardor

Knappe

  • »Kardor« ist der Autor dieses Themas

Motto: RTP? - Frontview KS? ich finds gut ^^

  • Nachricht senden

5

Donnerstag, 11. September 2014, 20:43

Jesses jetzt bin ich so oft hier und hab mich noch garnicht für das Script bedankt, Asche auf mein Haupt.
Danke Playm, ich werde das ganze einbauen und testen und hier Feedback geben^^

Momentan stecke ich ein bisschen im CON vorbereitungsstress^^ nicht wundern wenn es noch etwas dauert.

Aber danke nochmal.

_________________
EDIT:

So bin jetzt dabei das einzubauen und zu testen.
Versteh ich das im Scripttext richtig das der Prozentuale Verkaufswert manuell über ein
Scriptbefehl mit

Ruby Quellcode

1
2
   item = $data_items[ 789 ]
#   $game_system.market_value[item] = 123
ändere?
Najo so verstehe ich wenigstens deinen Infotext.

Aber das würde ja auch bedeuten das sich der Wert nicht selbstständig ändert oder?
(Sorry wenn ich, mal wieder, aufm Schlauch stehe^^)
In Entwicklung: Conjurer - Shadows of the Past
Vorstellung Conjurer
Meinungen und konstruktive Kritik sind immer erwünscht.

Wer bin ich? Und wenn ja wie viele?

Ich kann nicht viel zum Dank anbieten, ausser meiner ehrlichen Meinung
und meiner Zeit zB. als Tester.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Kardor« (11. September 2014, 20:43)


6

Donnerstag, 11. September 2014, 21:27

Zitat

Versteh ich das im Scripttext richtig
Ja, diese Option ist möglich, um den Wert auf 100% zurückzusetzen, oder wenn es Storytechnisch Sinn macht, das Plötzlich (bei Krieg?) die Preise für Eisen steigen. Kurz gesagt: Damit kannst Du regulierend in den Markt eingreifen, wenn Du Lust dazu hast.

Zitat

Aber das würde ja auch bedeuten das sich der Wert nicht selbstständig ändert oder?
In der Tat änderen sich die Werte bei diesem Skript nicht automatisch, dafür musst Du in Scene_Shop noch etwas anpassen, das steht ein paar Zeilen höher in den Kommentaren. Wenn Du das erledigt hast, ändert sich der Wert automatisch.

Kardor

Knappe

  • »Kardor« ist der Autor dieses Themas

Motto: RTP? - Frontview KS? ich finds gut ^^

  • Nachricht senden

7

Samstag, 13. September 2014, 23:59

Aaaalso
hab das mal eingebaut und kurz getestet.
Das ganze funktioniert prinzipiell Tadellos, jedoch gibt es eine
ziemlich gravierende Sache.

Wenn ich zB ERZ verkaufe dann nimmt der Preis ab, soweit ist das großartig.
Allerdings betrifft das auch den Einkaufspreis!
Sprich ich verscherbel mein Erz und kann es dann für 0 wieder einkaufen.

Anbei mal der Projektordner.
Die Kiste im Laden gibt dir jedes mal 99 Erz. einfach anklicken, gibt keine Meldung oder dergleichen.
»Kardor« hat folgende Datei angehängt:
In Entwicklung: Conjurer - Shadows of the Past
Vorstellung Conjurer
Meinungen und konstruktive Kritik sind immer erwünscht.

Wer bin ich? Und wenn ja wie viele?

Ich kann nicht viel zum Dank anbieten, ausser meiner ehrlichen Meinung
und meiner Zeit zB. als Tester.

8

Montag, 15. September 2014, 01:23

Zitat

Wenn ich zB ERZ verkaufe dann nimmt der Preis ab, soweit ist das großartig.
Allerdings betrifft das auch den Einkaufspreis!
Klar, das ist absicht. Wenn Du tausende Einheiten X auf den Markt wirfst, sinkt dessen Wert, natürlich kannst Du es dann anschließend auch wieder billig einkaufen (allerdings nimmt dann der Wert wieder zu). Was hattest Du dir denn für eine Logik überlegt? Das er dir weniger dafür bezahlt aber immernoch gleichviel dafür verlangt, wenn Du es dann zurückkaufen willst? :hm:

Kardor

Knappe

  • »Kardor« ist der Autor dieses Themas

Motto: RTP? - Frontview KS? ich finds gut ^^

  • Nachricht senden

9

Montag, 15. September 2014, 10:35

Morgen Playm,

wenn du das so sagst hast du natürlich vollkommen recht,
keine Ahnung was mich da geritten hat (Grundsätzliches Marktverhalten sollte man als Kaufmann eigentlich kennen *hust*).

Von daher :thumbsup: funktioniert^^

Aber noch 2 Fragen:

Gibt es die Möglichkeit einen minimalen Wiederverkaufswert festzulegen? (momentan gäbe es die gegenstände bei Marktsättigung umsonst.)
Wo im Skript stelle ich den Sättigungswert ein (also die Menge ab der, der Preis beginnt zu fallen)?

Edit:
Ah nochwas, ursprünglich war ja noch die Idee im Raum das sich der Wert von alleine erholt.
Jetzt gibt es doch im Spiel die Uhr die, die gespielte Zeit ausgibt, kann man diese Uhr irgendwie ansteuern?
Also das man sagt alle X Spielminuten erholt sich der Wert?
In Entwicklung: Conjurer - Shadows of the Past
Vorstellung Conjurer
Meinungen und konstruktive Kritik sind immer erwünscht.

Wer bin ich? Und wenn ja wie viele?

Ich kann nicht viel zum Dank anbieten, ausser meiner ehrlichen Meinung
und meiner Zeit zB. als Tester.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Kardor« (15. September 2014, 10:35)


10

Montag, 15. September 2014, 15:20

Zitat

Gibt es die Möglichkeit einen minimalen Wiederverkaufswert festzulegen? (momentan gäbe es die gegenstände bei Marktsättigung umsonst.)

Aktuell kann der Preis auf 1% des Originalpreises fallen und auf maximal 200% steigen, wie man hier im Skript sieht:

Ruby Quellcode

61
62
63
64
65
66
67
68
69
  #--------------------------------------------------------------------------
  # * Ändere den Prozentwert mit dem der Preis eines Items verrechnet wird
  #--------------------------------------------------------------------------
  def []=(item, value)
    return value unless @item_to_value.has_key?(item.id)
    return @item_to_value[item.id] = 200 if value > 200
    return @item_to_value[item.id] = 1   if value < 1
    return @item_to_value[item.id] = value
  end
Kostet das Item nun aber normalerweise 50 Gold, wäre 1% davon ja 0.5 Goldstücke, was in Ermangelung einer kleineren Währungseinheit zu 0 Goldstücken wird. Man könnte in der Methode die den Preis ausrechnet (Originalpreis multipliziert mit dem Prozentwert) natürlich einen Mindestwert angeben:
  • Aktuell

    Ruby Quellcode

    54
    55
    56
    57
    58
    59
    60
    
      #--------------------------------------------------------------------------
      # * Berechne den Preis eines Items unter Beruecksichtigung der Marktlage
      #--------------------------------------------------------------------------
      def price(item)
        return item.orginal_price unless @item_to_value.has_key?(item.id)
        return item.orginal_price * (@item_to_value[item.id] / 100.0)
      end
  • So könnte man es anpassen:

    Ruby Quellcode

    54
    55
    56
    57
    58
    59
    60
    61
    
      #--------------------------------------------------------------------------
      # * Berechne den Preis eines Items unter Beruecksichtigung der Marktlage
      #--------------------------------------------------------------------------
      def price(item)
        return item.orginal_price unless @item_to_value.has_key?(item.id)
        value = item.orginal_price * (@item_to_value[item.id] / 100.0)
        return (value < 1) ? 1 : value
      end


Zitat

Wo im Skript stelle ich den Sättigungswert ein (also die Menge ab der, der Preis beginnt zu fallen)?

Das ist der Edit an der Scene_Shop, aktuell sinkt der Kaufpreis für jede verkaufte Einheit um 1% und steigt um 1% für jede gekaufte. Du könntest da noch einen Multiplikator an @number_window.number dranhängen, das er nur um 0.5% steigt oder fällt.

Zitat

Ah nochwas, ursprünglich war ja noch die Idee im Raum das sich der Wert von alleine erholt.
Jetzt gibt es doch im Spiel die Uhr die, die gespielte Zeit ausgibt, kann man diese Uhr irgendwie ansteuern?
Also das man sagt alle X Spielminuten erholt sich der Wert?

Ja, da kommt man dran. Allerdings fielen mir jetzt nur Lösungen ein, wo sich jede xte Spielminute der Preis erholt, also wenn Du kurz vor Minute X einkaufst, erholt sich der Wert direkt wieder um n Prozent, während Du wenn Du kurz nach Minute X einkaufst, etwas warten musst.

Kardor

Knappe

  • »Kardor« ist der Autor dieses Themas

Motto: RTP? - Frontview KS? ich finds gut ^^

  • Nachricht senden

11

Montag, 15. September 2014, 21:35

Ahh danke für die Erläuterung.
Hmm wäre es arg kompliziert es einzurichten das sich pro 15 min Spielzeit 12,5% des Wertes (bis max. 100%) erholen?
In Entwicklung: Conjurer - Shadows of the Past
Vorstellung Conjurer
Meinungen und konstruktive Kritik sind immer erwünscht.

Wer bin ich? Und wenn ja wie viele?

Ich kann nicht viel zum Dank anbieten, ausser meiner ehrlichen Meinung
und meiner Zeit zB. als Tester.

12

Dienstag, 16. September 2014, 23:36

Hab mich eben drangesetzt. Wenn ich nichts übersehen habe, sollte das so funktionieren.
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
#==============================================================================
#  Marktsystem für Kardor Erweiterung
#------------------------------------------------------------------------------
# Der Marktpreis der Items regeneriert sich kontinuierlich, so dass im Schnitt
# in 15 Minuten 12.5% wiederhergestellt werden.
#------------------------------------------------------------------------------
# Autor:  Playm
# Datum:  September 2014
# Maker:  XP
# Lizenz: (CC BY-NC-SA 3.0)
#==============================================================================
#
#==============================================================================
# ** Game_System
#==============================================================================
class Game_System
  #--------------------------------------------------------------------------
  # * Alias
  #--------------------------------------------------------------------------
  alias_method(:org_update_wo_market_value, :update)
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    org_update_wo_market_value
    update_market
  end
  #--------------------------------------------------------------------------
  # * Lass den Markt sich jede volle Minute regenerieren
  #--------------------------------------------------------------------------
  def update_market
    total_sec = Graphics.frame_count / Graphics.frame_rate
    if (total_sec % 60).zero?
      @market_value.recover_all(12.5 / 15)
    end
  end
end
#==============================================================================
# ** Game_Market_value
#==============================================================================
class Game_Market_value
  #--------------------------------------------------------------------------
  # * Regeneriert den Prozentwert aller Items
  #--------------------------------------------------------------------------
  def recover_all( value )
    @item_to_value.keys.each do |item_id|
      recover(item_id, value)
    end
  end
  #--------------------------------------------------------------------------
  # * Regeneriert den Prozentwert eines Items um +value+ richtung 100%
  #--------------------------------------------------------------------------
  def recover(item_id, value)
    return if @item_to_value[item_id] == 100
 
    if @item_to_value[item_id] > 100
      @item_to_value[item_id] -= value
      @item_to_value[item_id] = 100 if @item_to_value[item_id] < 100
    else
      @item_to_value[item_id] += value
      @item_to_value[item_id] = 100 if @item_to_value[item_id] > 100
    end
  end
end
zum Lesen den Text mit der Maus markieren
Zu beachten ist, das sich nun aber auch die am Start gesetzen Werte kontinuierlich erholen. Aber dafür kann man ja - wenn es stortytechnisch nötig ist - wie im Hauptskript erwähnt nachregulieren.

Kardor

Knappe

  • »Kardor« ist der Autor dieses Themas

Motto: RTP? - Frontview KS? ich finds gut ^^

  • Nachricht senden

13

Mittwoch, 17. September 2014, 09:00

Coole Sache Playm, vielen Dank.

Hintergrund der "Regeneration" des Preises ist das der Spieler nicht der einzige ist der quasi einkauft.
Der andere ist die Punkte an denen man diese "handelswaren" bekommen kann sind endlich, spricht es gibt auf einer Map
nur soundso viele die sich ncht regenerieren.
Und da man mit den Handelwaren auch bessere Waffen und Heilgegenstände herstellen kann,
als jene die man normal kaufen kann muss man sich halt überlegen ob man das hamstern möchte
(das Zeug kann man überall verkaufen aber nicht einkaufen ^^) oder ob man das weiterverarbeitet (was natürlich Geld kostet) ^^
In Entwicklung: Conjurer - Shadows of the Past
Vorstellung Conjurer
Meinungen und konstruktive Kritik sind immer erwünscht.

Wer bin ich? Und wenn ja wie viele?

Ich kann nicht viel zum Dank anbieten, ausser meiner ehrlichen Meinung
und meiner Zeit zB. als Tester.

14

Mittwoch, 17. September 2014, 16:44

Brauchst Du sonst noch etwas? :)
Weil das Thema noch als unerledigt da steht. Oder kamst Du nur noch nicht dazu, die Erweiterung zu testen?

Kardor

Knappe

  • »Kardor« ist der Autor dieses Themas

Motto: RTP? - Frontview KS? ich finds gut ^^

  • Nachricht senden

15

Mittwoch, 17. September 2014, 20:38

Ist noch ungetestet.

Test läuft.
Erste Erweiterung funktioniert mindest Einkaufswert beträgt 1 Verkaufswert bleibt 0.
Also der Preis erholt sich, allerdings erst nach 25min und dann komplett.
In Entwicklung: Conjurer - Shadows of the Past
Vorstellung Conjurer
Meinungen und konstruktive Kritik sind immer erwünscht.

Wer bin ich? Und wenn ja wie viele?

Ich kann nicht viel zum Dank anbieten, ausser meiner ehrlichen Meinung
und meiner Zeit zB. als Tester.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Kardor« (17. September 2014, 21:35)


16

Mittwoch, 17. September 2014, 20:51

Naja, hat man nochmal einen Grund das Projekt 'ne Viertelstunde zu testen. ;D

Kardor

Knappe

  • »Kardor« ist der Autor dieses Themas

Motto: RTP? - Frontview KS? ich finds gut ^^

  • Nachricht senden

17

Mittwoch, 17. September 2014, 21:37

lso Preis erholt sich zwar allerdings erst nach 25min und dann ist der ursprüngliche (initiale) Verkaufswert wieder aktiv.
In Entwicklung: Conjurer - Shadows of the Past
Vorstellung Conjurer
Meinungen und konstruktive Kritik sind immer erwünscht.

Wer bin ich? Und wenn ja wie viele?

Ich kann nicht viel zum Dank anbieten, ausser meiner ehrlichen Meinung
und meiner Zeit zB. als Tester.

18

Mittwoch, 17. September 2014, 22:35

Hm, bist Du sicher? Das es 25 Minuten dauert ist unerwartet, das schau ich mir nochmal an.
Oh. Die Regernation erfolgt nicht, wenn das Spiel pausiert ist (zum Beispiel im Menü). Könnte es daran liegen, dass Du bei deinem Testlauf im Menü warst?

Kardor

Knappe

  • »Kardor« ist der Autor dieses Themas

Motto: RTP? - Frontview KS? ich finds gut ^^

  • Nachricht senden

19

Donnerstag, 18. September 2014, 20:01

Ja das könnte es gewesen sein, ich hab nebenher was anderes gemacht und hatte das Menu offen damit ich sehe wann es soweit ist.
Zurück zum Testen ^^
____________________________________
Also es bleibt dabei, nach ca 12 min hat sich der Preis vollständig erholt.
Man startet im Shop und wenn man die Kiste anspricht gibts 99 erz.
»Kardor« hat folgende Datei angehängt:
In Entwicklung: Conjurer - Shadows of the Past
Vorstellung Conjurer
Meinungen und konstruktive Kritik sind immer erwünscht.

Wer bin ich? Und wenn ja wie viele?

Ich kann nicht viel zum Dank anbieten, ausser meiner ehrlichen Meinung
und meiner Zeit zB. als Tester.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Kardor« (18. September 2014, 20:01)


20

Freitag, 19. September 2014, 02:18

Ah, ja ich sehe das Problem - tut mir leid.

Ruby Quellcode

32
33
34
35
36
37
38
39
40
  #--------------------------------------------------------------------------
  # * Lass den Markt sich jede volle Minute regenerieren
  #--------------------------------------------------------------------------
  def update_market
    total_sec = Graphics.frame_count / Graphics.frame_rate
    if (total_sec % 60).zero?
      @market_value.recover_all(12.5 / 15)
    end
  end
Das Problem ist, wie total_sec bestimmt wird. Diese Rechnung ist auf dem Window_PlayTime übernommen und stellt so richtig die Sekunden dar - allerdings wird dieser Wert auch eine volle Sekunde gehalten, bzw. die vollen n Frames, die eine Sekunde hat. Aus diesem Grund wird jede Minute innerhalb dieser einen Sekunde (bei 40 FPS) vierzig mal der Itemwert recovert, was so natürlich nicht geplant ist.
Die Lösung ist simpel - statt wie für das Window_PlayTime eine Ganzzahldivision durchzuführen, rechnen wir mit Kommazahlen und total_sec sollte in den Zwischenframes nur einmal glatt sein. Ich hoffe das war verständlich - es ist schon spät, aber ich wollte dir erklären, was das Problem war. ^^"

Die Lösung ist bei der Division ein .to_f anzuhängen:

Ruby Quellcode

32
    total_sec = Graphics.frame_count / Graphics.frame_rate.to_f


Probier das mal aus. Achja und wenn dir für das Testen die Warterei zu lang ist, kannst Du ja die Werte in dieser Methode anpassen, also zum Beispiel nicht alle 60 Sekunden, sondern alle 5 Sekunden ein Recover durchführen.

Ähnliche Themen

Social Bookmarks