• Anmelden

WarriorA

Knappe

  • »WarriorA« ist der Autor dieses Themas

Motto: Brothers everywhere, raise your hands into the air, we're warriors, warriors of the world!

  • Nachricht senden

1

Samstag, 24. April 2010, 10:50

Items erst ab gewissem LvL/STR/INT etc. Wert anlegbar

Hallo ihr alle =)

Ich bin auf der suche nach einem Script, welches Waffen/Rüstungen etc. nur anlegbar macht, sofern man gewisse Attribute erfüllt hat

(bsp: Kurzschwert kann ab level 10 benutzt werden, sofern der Char über 50 STR verfügt)
(bsp. Magiersab kann ab level 12 benutzt werden, sofern der Char über 66 INT verfügt)
(bsp. Kampfdolch kann ab level 7 benutzt werden, sofern der Char über 50 AGI und 40 DEX verfügt)

so in der Art habe ich mir das vorgestellt :)

Das leichteste währe wohl hier, einfach eine Variable auslesen zu lassen, welche sich davor auf besagte werte stellt, und im falle einer zu geringen Variable einfach zu Dusablen =)

Weiß zwar nicht ob das so leicht geht, aber ich würde mich über eine Antwort freuen.

(Hab zwar auch noch nicht so viel ahnung vom Scripten, aber evtl per Array verschiedene Waffen

Waffen[Kurzschwert, Magierstab, ...]
und in einem anderen
Waffenname[lvl, hp, sp, str, int, dex, agi, atk, pdef, mdef]
Kurzschwert[5, 1, 1, 20, 1, 1, 1, 20, 1, 1]
Magierstab[10, 1, 150, 1, 30, 1, 1, 1, 1, 5]

oder in dieser art) =)
Weiß zwar nicht ob dies so möglich ist, aber ist evtl ein ansatz.

mfg

- WarriorA -
- Eventer -

  • Allgemeines

    Bild
    Bild
  • Können

    Eventing 10/10
    Mapping 7,5/10
    Grafiken 6,5/10
    Scripting 4/10
    Pixeln 0/10
  • Projekt

    Bild

Yuber

Seher

Motto: Die Welt zu beherrschen.

  • Nachricht senden

2

Samstag, 24. April 2010, 10:59

Du könntest es über Common Event machen nur wäre das etwas aufwendig bei vielen Waffen ( Waffen Vorraussetzungen ).

Ich habe aber so ein Script schonmal vor langer Zeit gesehen musst du mal bei creationasylum oder so gucken.
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!

WarriorA

Knappe

  • »WarriorA« ist der Autor dieses Themas

Motto: Brothers everywhere, raise your hands into the air, we're warriors, warriors of the world!

  • Nachricht senden

3

Samstag, 24. April 2010, 11:03

Auf die Idee bin ich auch shcon gekommen, dachte aber, dass der Nicht equippen Text einfach nur kommt, und die Waffe trotzdem angelegt wird, weil man ja nicht einstellen kann, das bei einem gewissen CB case einfach ein Disable kommt, darum hab ich es garnicht erst versucht :D

Aber das mit Change equip dahinter wäre dann wohl die lösung, vielen danke, ich werds gleich mal versuchen =)

mfg

- WarriorA -
- Eventer -

  • Allgemeines

    Bild
    Bild
  • Können

    Eventing 10/10
    Mapping 7,5/10
    Grafiken 6,5/10
    Scripting 4/10
    Pixeln 0/10
  • Projekt

    Bild

Irrlicht

Leuchtendes Irgendwas

Motto: Keep shining!

  • Nachricht senden

4

Samstag, 24. April 2010, 11:52

Ich bin in RGSS bisher nur soweit gekommen dass Waffen/Rüstungen, denen man zu hohe Anforderungen zugewiesen hat nicht in der Liste der anlegbaren Waffen auftauchen (genauso als wenn der Held eine für die Waffe/Rüstung falsche Klasse besäße), was dann allerdings etwas verwirrend sein kann wenn man sich dann wundert wo die neu gekaufte Waffe hinverschwunden ist^^

Wenn es dich trotzdem interessieren sollte:

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
# --------------------------------------------------------------------------
# Vorraussetzungen für eine Waffe/eine Rüstung
# --------------------------------------------------------------------------
 
class Vorraussetzung
 
  def initialize
    @waffen = Array.new($data_weapons.size)
    @schutz = Array.new($data_armors.size)
#  Hier eingeben welche Waffen bestimmte Anforderungen haben sollen:
#  Zum Vergleich:
#  @waffen[Item-ID] = [Level, Str, Dex, Agi, Int]
    @waffen[1] = [1, 400, 10, 10, 10]
  end  
 
 
  #Teste ob Anforderungen erfüllt sind
  def test(actor, item)
    case item
    when RPG::Weapon
      if @waffen[item.id] == nil then
        return true
      else  
        return waffentest(actor, item)
      end                              
    when RPG::Armor
      if @schutz[item.id] == nil then 
        return true
      else
        return  schutztest(actor, item)
      end
    end
  end
 
  def waffentest(actor, item)
    if @waffen[item.id][0] <= actor.level
      if @waffen[item.id][1] <= actor.str
        if @waffen[item.id][2] <= actor.dex
          if @waffen[item.id][3] <= actor.agi
            if @waffen[item.id][4] <= actor.int
              return true
            end
          end
        end
      end
    end
    return false
  end
 
  def schutztest(actor, item)
    if @schutz[item.id][0] <= actor.level
      if @schutz[item.id][1] <= actor.str
        if @schutz[item.id][2] <= actor.dex
          if @schutz[item.id][3] <= actor.agi
            if @schutz[item.id][4] <= actor.int
              return true
            end
          end
        end
      end
    end
    return false
  end  
 
end  
 
 
# ----------------------------------------------------------
# Änderungen am Equip-Menü
# ----------------------------------------------------------
 
class Window_EquipItem < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     actor      : actor
  #     equip_type : equip region (0-3)
  #--------------------------------------------------------------------------
  def initialize(actor, equip_type)
    super(0, 256, 640, 224)
    @actor = actor
    @equip_type = equip_type
    @column_max = 2
    @vorraussetzung = Vorraussetzung.new
    refresh
    self.active = false
    self.index = -1
  end
 
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    # Add equippable weapons
    if @equip_type == 0
      weapon_set = $data_classes[@actor.class_id].weapon_set
      for i in 1...$data_weapons.size
        if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)
          # geändert
          if @vorraussetzung.test(@actor,$data_weapons[i]) == true
            @data.push($data_weapons[i])
          end 
        end
      end
    end
    # Add equippable armor
    if @equip_type != 0
      armor_set = $data_classes[@actor.class_id].armor_set
      for i in 1...$data_armors.size
        if $game_party.armor_number(i) > 0 and armor_set.include?(i)
          if $data_armors[i].kind == @equip_type-1
            #eingefügt
            if @vorraussetzung.test(@actor,$data_armors[i])
              @data.push($data_armors[i])
            end  
          end
        end
      end
    end
    # Add blank page
    @data.push(nil)
    # Make a bit map and draw all items
    @item_max = @data.size
    self.contents = Bitmap.new(width - 32, row_max * 32)
    for i in 0...@item_max-1
      draw_item(i)
    end
  end
 
end 
zum Lesen den Text mit der Maus markieren

Unter initialize kannst du zusätzlichen Waffen/Rüstungen Bedingungen zuweisen (Ein Beispiel steht ja schon)

Ist leider zur Zeit noch sehr grob (hast du z.B. eine Waffe, die dir 400 Str gibt kannst du sie in dem Beispiel trotzdem gegen das Bronzeschwert tauschen, auch wenn die Vorraussetzung danach nicht mehr gegeben ist, müsste sich aber ändern lassen)


mfG
Irrlicht

Ähnliche Themen

Social Bookmarks