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]](http://s12.postimg.org/6de4hr8wt/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]](http://s27.postimg.org/j2nnrz1kz/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ć :)
|