[XP] Mała pomoc w edycji - Wersja do druku
Ultima Forum
[XP] Mała pomoc w edycji - Wersja do druku

+- Ultima Forum (https://forum.ultimateam.pl)
+-- Dział: RPG Maker (/Forum-RPG-Maker)
+--- Dział: Wsparcie (/Forum-Wsparcie)
+--- Wątek: [XP] Mała pomoc w edycji (/Thread-XP-Ma%C5%82a-pomoc-w-edycji)



Mała pomoc w edycji - Deuce - 10-07-14 10:52

Witam chciałbym poprosić kogoś kto zna się lepiej ode mnie na RGSS a na pewno jest takich ludzi wiele ;P
mój problem polega na tym ze próbuję edytować skrypt który wyświetla informacje o przedmiotach i umiejętnościach w ten sposób:
[Obrazek: MWSnap001.png]
chciałbym aby wyświetlał mi wszystkie atrybuty przedmiotu, udało mi się dodać obronę magiczną ale przy opcjach takich jak siła wywala błąd.
Ja niestety nie jestem za dobry w RGSS dlatego zwracam się z prosba do osób które znają się na rzeczy, za wszelka pomoc dziękuję.

Kod:
#==============================================================================
# ** Window Help Item
#------------------------------------------------------------------------------
#  By Valentine
#==============================================================================

class Window_Help2 < Window_Base
  
  def initialize(x,y,a,b)
    super(x,y,a,b)
    self.contents = Bitmap.new(self.width-32, self.height-32)
    self.windowskin = RPG::Cache.windowskin("Help")
    self.back_opacity = 230
    self.z = 9999999
    actor = 0
    refresh
  end
  
  def refresh
    self.contents.clear
    if $help_trade == true
      @item = $trade_w.item
    end
    if $help_trade_2 == true
      @item = $trade_w_2.item
    end
    if $help_loja == true
      @item = $loja_w.item
    elsif $help_loja != true and $help_trade != true and $help_trade_2 != true
      @item = $item_w.item
    end
    @actor = $game_party.actors[0]
    
    if @item != nil
      self.contents.font.color = Color.new(0,128,255)
      rect = Rect.new(4, -10, self.contents.width - 8, 32)
      self.contents.draw_text(rect, @item.name, 1)
      self.contents.font.color = Color.new(0,0,0)
      if @item.is_a?(RPG::Armor)
        self.contents.draw_text(4, 22, 400, 32, LANGUAGE::HELPSKILLATK + "0", 0)
        self.contents.draw_text(4, 37, 400, 32, LANGUAGE::HELPSKILLDEF + $data_armors[@item.id].pdef.to_s, 0)
        self.contents.draw_text(4, 52, 400, 32, LANGUAGE::HELPSKILLINT + $data_armors[@item.id].int_plus.to_s, 0)
        self.contents.draw_text(4, 67, 400, 32, LANGUAGE::HELPSKILLAGI + $data_armors[@item.id].agi_plus.to_s, 0)
      end
    
      if @item.is_a?(RPG::Item)
        if @item.id != Item_Ouro::Item_Id.to_i
          self.contents.draw_text(4, 22, 400, 32, LANGUAGE::HELPSKILLATK + "0", 0)
          self.contents.draw_text(4, 37, 400, 32, LANGUAGE::HELPSKILLDEF + "0", 0)
          self.contents.draw_text(4, 52, 400, 32, LANGUAGE::HELPSKILLINT + "0", 0)
          self.contents.draw_text(4, 67, 400, 32, LANGUAGE::HELPSKILLAGI + "0", 0)
        else
          self.contents.draw_text(4, 22, 400, 32, LANGUAGE::HELPITEMGOLD, 0)
        end
      end
    
      if $help_loja == true
        rect = Rect.new(4, 117, self.contents.width - 8, 32)
        self.contents.draw_text(rect, "$ "+@item.price.to_s, 1)
      else
        if @item.id != Item_Ouro::Item_Id.to_i
          rect = Rect.new(4, 117, self.contents.width - 8, 32)
          self.contents.draw_text(rect, "$ "+(@item.price/2).to_s, 1)
        else
          if !@item.is_a?(RPG::Item)
            rect = Rect.new(4, 117, self.contents.width - 8, 32)
            self.contents.draw_text(rect, "$ "+(@item.price/2).to_s, 1)
          end
        end
      end
    
      if @item.is_a?(RPG::Weapon)
        self.contents.draw_text(4, 22, 400, 32, LANGUAGE::HELPSKILLATK + $data_weapons[@item.id].atk.to_s, 0)
        self.contents.draw_text(4, 37, 400, 32, LANGUAGE::HELPSKILLDEF + $data_weapons[@item.id].pdef.to_s, 0)
        self.contents.draw_text(4, 52, 400, 32, LANGUAGE::HELPSKILLINT + $data_weapons[@item.id].int_plus.to_s, 0)
        self.contents.draw_text(4, 67, 400, 32, LANGUAGE::HELPSKILLAGI + $data_weapons[@item.id].agi_plus.to_s, 0)
        weapon_set = $data_classes[@actor.class_id].weapon_set
        if weapon_set.include?(@item.id)
          @resposta = LANGUAGE::HELPITEMCAN
          self.contents.font.color = Color.new(65,255,65)
        else
          @resposta = LANGUAGE::HELPITEMNOTCAN
          self.contents.font.color = Color.new(255,43,43)
        end
        rect = Rect.new(-1, 87, self.contents.width + 3, 32)
        self.contents.draw_text(rect, "#{@resposta} "+LANGUAGE::CANEQUIPPED, 1)
        rect2 = Rect.new(4, 100, self.contents.width - 8, 32)
        self.contents.draw_text(rect2, "#{$data_classes[$game_party.actors[0].class_id].name}", 1)
      elsif @item.is_a?(RPG::Armor)
        armor_set = $data_classes[@actor.class_id].armor_set
        if armor_set.include?(@item.id)
          @resposta = LANGUAGE::HELPITEMCAN
          self.contents.font.color = Color.new(65,255,65)
        else
          @resposta = LANGUAGE::HELPITEMNOTCAN
          self.contents.font.color = Color.new(255,43,43)
        end
        rect = Rect.new(-1, 87, self.contents.width + 3, 32)
        self.contents.draw_text(rect, "#{@resposta} "+LANGUAGE::CANEQUIPPED, 1)
        rect2 = Rect.new(4, 100, self.contents.width - 8, 32)
        self.contents.draw_text(rect2, "#{$data_classes[$game_party.actors[0].class_id].name}", 1)
      end
    end
  end
  
end



RE: Mała pomoc w edycji - Ayene - 10-07-14 11:19

A w jaki sposób próbowałeś dodać siłę? Bo pancerz sam w sobie nie ma statystyki 'siła/str' tylko 'str_plus'. Z kolei przedmioty nie mają jej w ogóle.


RE: Mała pomoc w edycji - Deuce - 10-07-14 11:35

Według bazy danych można zwiększyć siłę poprzez zbroję, a co do wyświetlenia siły to przy broni dodałem linijkę:
Kod:
self.contents.draw_text(4, 92, 400, 32, LANGUAGE::HELPSKILLSTR + $data_weapons[@item.id].str_plus.to_s, 0)

mam tez jeszcze jedno pytanie, istnieje możliwość wyświetlenia w tym skrypcie odporności w pancerzu na atrybuty a w broni jaki atrybut się w niej znajduje, oczywiście nie oczekuję że ktoś to za mnie wpisze tylko chciałbym może jakąś podpowiedź.


RE: Mała pomoc w edycji - Ayene - 10-07-14 12:06

Deuce napisał(a):Według bazy danych można zwiększyć siłę poprzez zbroję...
No to właśnie o to mi chodziło ;) . Podałeś, że chciałeś dodać 'siłę', więc chciałam się upewnić, czy wpisujesz 'str' czy 'str_plus'. Nie rozumiem jednak nadal, co w takim razie Ci nie działa?

Można wyświetlić atrybuty. Jaki chciałbyś otrzymać efekt? Wypisać te atrybuty po kolei, czy może za pomocą ikonek? I przez atrybuty masz na myśli odporności na elementy czy na statusy?


RE: Mała pomoc w edycji - Deuce - 10-07-14 12:23

Taki błąd otrzymuję kiedy dodam linijkę do opisu broni
[Obrazek: Przechwytywanie.png]
efekt miałby wyglądać tak że po najechaniu na przedmiot wyświetla mi taką listę + te atrybuty jak się uda.

Atak
Obrona
Intelekt
Celność
itp.

a co do atrybutów jest to obojętne czy to będzie grafika czy lista


RE: Mała pomoc w edycji - Ayene - 10-07-14 12:31

Ach, no bo w konfiguracji gdzieś w module LANGUAGE nie dodałeś zmiennej HELPSKILLSTR. Muisz znaleźć HELPSKILLAGI i pod nią dodać np. HELPSKILLSTR = "Siła".
Albo swoją linijkę zmodyfikować:
Kod:
self.contents.draw_text(4, 92, 400, 32, "Siła: " + $data_weapons[@item.id].str_plus.to_s, 0)



RE: Mała pomoc w edycji - Deuce - 10-07-14 12:34

Jeżeli będę chciał mieć więcej wyświetlonych statystyk mam zrobić to samo, i odnośnie tych atrybutów wiesz może jak to zrobić bo jest mi to bardzo potrzebne?


RE: Mała pomoc w edycji - Ayene - 11-07-14 11:22

Co do statystyk, to tak... oczywiście musisz się wpierw upewnić, czy w ogóle istnieje.

Co do atrybutów. Dla pancerza możesz użyć fragmentu:
Kod:
if @item.is_a?(RPG::Armor)
          @item.guard_element_set.each_with_index {|id, i|
          element = $data_system.elements[id]
            self.contents.draw_text(4, 0+32*i, self.width - 40, 32, element.to_s, 0)
          }          
          @item.guard_state_set.each_with_index {|id, i|
          state = $data_states[id].name
            self.contents.draw_text(104, 0+32*i, self.width - 40, 32, state.to_s, 0)
          }        
        end
dla broni:
Kod:
if @item.is_a?(RPG::Weapon)
          @item.element_set.each_with_index {|id, i|
          element = $data_system.elements[id]
            self.contents.draw_text(4, 0+32*i, self.width - 40, 32, element.to_s, 0)
          }
          
          @item.plus_state_set.each_with_index {|id, i|
          plus_state = $data_states[id].name
            self.contents.draw_text(104, 0+32*i, self.width - 40, 32, plus_state.to_s, 0)
          }
          
          @item.minus_state_set.each_with_index {|id, i|
          minus_state = $data_states[id].name
            self.contents.draw_text(204, 0+32*i, self.width - 40, 32, minus_state.to_s, 0)
          }
          
        end
Dla przedmiotów to samo co dla broni, tylko warunek sprawdzający typ musi się zmienić:
Kod:
if @item.is_a?(RPG::Item)



RE: Mała pomoc w edycji - Deuce - 11-07-14 13:41

Jestem ci bardzo wdzięczny za pomoc, zaraz sprawdzę jak to wygląda w praktyce, jeszcze zostanie mi powiększenie tego okienka z informacją bo wszystko nachodzi na siebie albo brakuje miejsca ale to już sam mogę zrobić :)