Pomógł: 2 razy Dołączył: 01 Mar 2011 Posty: 41 Skąd: Okolice Wrocławia
Wysłany: Sro 20 Kwi, 2011 07:08
Skrypt na - Umiejętności używane tylko z danym typem broni.
Jak w temacie potrzebuję skryptu który po wpisaniu w notkach danej umiejętności
zrobi tak że tej umiejętność będzie można używać tylko z danym typem broni.
Np:
Umiejętność "Ogłuszający Cios" możliwy do użycia tylko z Młotami czy Pałkami, czyli jak bohater ma miecz to nie może używać jej.
I nie chodzi o konkretną jedną broń, bo to da się zrobić w typowych zdążeniach.
Chodzi o cała grupę broni - Młoty, Miecze itp...
Na rpgmakervx.net jest coś takiego. Daj mi moment, to znajdę. A jak nie chcesz czekać, to sam poszukaj
Proszszsz... Powinno być dobre http://www.rpgmakervx.net...ls+with+weapons
________________________
"Na trolla pewne są tylko dwie pewne metody, jedna samopowtarzalna i druga, wymagająca przeładowania ręcznego."
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Sro 20 Kwi, 2011 16:50
Nie wiem, czy jest. Niemniej zrobiłam... skorzystaj z którego chcesz.
Nie wiedziałam, czy chcesz żeby umiejętność była widoczna, ale zaciemniona, czy w ogóle nie widoczna, więc wybrałam wersję drugą (można w razie czego zmienić lekko skrypt) Instrukcja w treści skryptu.
Spoiler:
Kod:
#===================================================================
# Umiejętność dla konkretnego rodzaju broni [VX]
# by Ayene
# 20.04.2011 ver 1.0
# www.ultimateam.pl
#===================================================================
# Opis:
# Skrypt umożliwia ustawienie w oknie notatki, że dana umiejętność
# może być używana tylko wówczas, gdy bohater ma ekwipowany konkretny
# rodzaj broni.
#
# Instrukcja:
# By skorzystać ze skryptu w oknie 'Note' przy danej umiejętności
# w Bazie Danych umieść tekst <weapontype RODZAJ>, gdzie:
# RODZAJ - rodzaj broni według wzoru: 0 - miecze, 1 - młoty, itd.
# (patrz poniższa konfiguracja)
#
# Przykładowo:
# Jeśli chcesz, by postać mogła używać umiejętności dopiero, gdy jest
# ekwipowana w miecz to w oknie 'Note' tej umiejętności należy wpisać:
# <weapontype 1>
#
# Natomiast, gdy bohater może jej użyć dopiero z młotem:
# <weapontype 2>
#===================================================================
module AYENE
module SkillSpec
SKILL_SPEC = /<(?:WEAPONTYPE|weapontype)\s*(\d+)>/i
WEAPON_TYPE = { # <- nie usuwać
# RODZAJ => ["NAZWA", [ID broni z danego rodzaju po przecinku]],
1 => ["Miecz", [2, 6, 10]],
2 => ["Młot", [1, 18]],
3 => ["Łuk", [4, 11, 17]]
} # <- nie usuwać
end
end
class RPG::Skill
def skill_spec_ini
@weapon_type = 0
self.note.split(/[\r\n]+/).each { |line|
case line
when AYENE::SkillSpec::SKILL_SPEC
@weapon_type = $1.to_i
end
}
end
def weapon_type
skill_spec_ini if @weapon_type == nil
return @weapon_type
end
end
class Window_Skill < Window_Selectable
def refresh
@data = []
for skill in @actor.skills
if AYENE::SkillSpec::WEAPON_TYPE.include?(skill.weapon_type)
if AYENE::SkillSpec::WEAPON_TYPE[skill.weapon_type][1].include?(@actor.weapon_id)
@data.push(skill)
if skill.id == @actor.last_skill_id
self.index = @data.size - 1
end
end
end
end
@item_max = @data.size
create_contents
for i in 0...@item_max
draw_item(i)
end
end
end
Pomógł: 2 razy Dołączył: 01 Mar 2011 Posty: 41 Skąd: Okolice Wrocławia
Wysłany: Sro 20 Kwi, 2011 20:55
Wielkie dzięki.
BTW- wolę przyciemnioną.
Rozumie że jako 4,5 ...itd mogę dopisać inne rodzaje. Wtedy "<weapontype 4,5 ...itd> " w notce umiejętności.
A do zmiany żeby umiejętność była widoczna, ale zaciemniona co edytować?
--------------
Ayene napisał/a:
# Przykładowo:
# Jeśli chcesz, by postać mogła używać umiejętności dopiero, gdy jest
# ekwipowana w miecz to w oknie 'Note' tej umiejętności należy wpisać:
# <weapontype 1>
#
# Natomiast, gdy bohater może jej użyć dopiero z młotem:
# <weapontype 2>
CHYBA
<wewpontype 0> dla miecza
<weapontype 1> dla młota
itd
________________________ ------STAN PROJEKTU-------
Skrypty - 85%
Fabuła - 60%
Mapy - 10 %
Muzyka i Dźwięki - 100%
Baza Danych - 65% (około 800 z 1200 itemków)
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Sro 20 Kwi, 2011 21:45
Co do zaciemnienia, spróbuj zamienić fragment:
Kod:
class Window_Skill < Window_Selectable
def refresh
@data = []
for skill in @actor.skills
if AYENE::SkillSpec::WEAPON_TYPE.include?(skill.weapon_type)
if AYENE::SkillSpec::WEAPON_TYPE[skill.weapon_type][1].include?(@actor.weapon_id)
@data.push(skill)
if skill.id == @actor.last_skill_id
self.index = @data.size - 1
end
end
end
end
@item_max = @data.size
create_contents
for i in 0...@item_max
draw_item(i)
end
end
end
na:
Kod:
class Game_Actor < Game_Battler
def skill_can_use?(skill)
return false unless skill_learn?(skill)
return false if not AYENE::SkillSpec::WEAPON_TYPE.include?(skill.weapon_type)
if AYENE::SkillSpec::WEAPON_TYPE.include?(skill.weapon_type)
if not AYENE::SkillSpec::WEAPON_TYPE[skill.weapon_type][1].include?(@weapon_id)
return false
end
end
return super
end
end
Z tym że nie można przyporządkować dwóch rodzajów broni, jednej umiejętności. Jutro nad tym popracuję jeszcze, zobaczymy, co da się zrobić Spróbuj ewentualnie sprawdzić, o co chodzi z skrypcie podanym przez Angiusa
i wywala mi błąd na pozycji 4.
Pod numerami ID broni mam sprzęt.
Więc nie wiem czemu.
Po wymazaniu 4,5,6,7 działa ok.
To może napiszę jakie typy broni przewiduję:
1.Miecz 1h
2.Topór 1h
3.Młot / Pałka 1h
4.Bronie 2h (młoty,pałki,miecze,topory)
5.Sztylet / Katar
6.Łuk / Kusza
7.Broń miotana
8.Bez Broni / Rękawice
9.Pazurki (czy jak tam je zwało się)
10.Laski / Różdżki
No fajnie było by gdyby można było pod umiejętnością wpisać że może być używany z np: 1,2 i 4.
I jak bohater ma np: miecz a umiejętność można użyć z młotem, to jest ona przyciemniona (ok) lecz po najechaniu na nią mogło by na gorze wyświetlać np: "Nie masz odpowiedniej broni do tej umiejętności"
________________________ ------STAN PROJEKTU-------
Skrypty - 85%
Fabuła - 60%
Mapy - 10 %
Muzyka i Dźwięki - 100%
Baza Danych - 65% (około 800 z 1200 itemków)
Co do informacji o tym, że nie można używać broni...
Zamień skrypt na poniższy:
Spoiler:
Kod:
#===================================================================
# Umiejętność dla konkretnego rodzaju broni [VX]
# by Ayene
# 20.04.2011 ver 1.0
# www.ultimateam.pl
#===================================================================
# Opis:
# Skrypt umożliwia ustawienie w oknie notatki, że dana umiejętność
# może być używana tylko wówczas, gdy bohater ma ekwipowany konkretny
# rodzaj broni.
#
# Instrukcja:
# By skorzystać ze skryptu w oknie 'Note' przy danej umiejętności
# w Bazie Danych umieść tekst <weapontype RODZAJ>, gdzie:
# RODZAJ - rodzaj broni według wzoru: 0 - miecze, 1 - młoty, itd.
# (patrz poniższa konfiguracja)
#
# Przykładowo:
# Jeśli chcesz, by postać mogła używać umiejętności dopiero, gdy jest
# ekwipowana w miecz to w oknie 'Note' tej umiejętności należy wpisać:
# <weapontype 1>
#
# Natomiast, gdy bohater może jej użyć dopiero z młotem:
# <weapontype 2>
#===================================================================
module AYENE
module SkillSpec
SKILL_SPEC = /<(?:WEAPONTYPE|weapontype)\s*(\d+)>/i
SKILL_WEAPON_TEXT = "Nie masz odpowiedniej broni do tej umiejętności."
class RPG::Skill
def skill_spec_ini
@weapon_type = 0
self.note.split(/[\r\n]+/).each { |line|
case line
when AYENE::SkillSpec::SKILL_SPEC
@weapon_type = $1.to_i
end
}
end
def weapon_type
skill_spec_ini if @weapon_type == nil
return @weapon_type
end
def spec_text
return AYENE::SkillSpec::SKILL_WEAPON_TEXT
end
end
class Window_Skill < Window_Selectable
def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
skill = @data[index]
if skill != nil
rect.width -= 4
enabled = @actor.skill_can_use?(skill)
if AYENE::SkillSpec::WEAPON_TYPE.include?(skill.weapon_type)
if not AYENE::SkillSpec::WEAPON_TYPE[skill.weapon_type][1].include?(@actor.weapon_id)
enabled = false
end
end
enabled = false if not AYENE::SkillSpec::WEAPON_TYPE.include?(skill.weapon_type)
draw_item_name(skill, rect.x, rect.y, enabled)
self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
end
end
end
class Scene_Skill < Scene_Base
alias aye_skillspec_scsk_start start
alias aye_skillspec_scsk_ter terminate
def terminate
aye_skillspec_scsk_ter
@spec_window.dispose
end
def update
super
update_menu_background
@help_window.update
@status_window.update
@skill_window.update
@target_window.update
@spec_window.update
if @skill_window.active
update_skill_selection
elsif @target_window.active
update_target_selection
elsif @spec_window.active
update_spec_selection
end
end
def update_skill_selection
if Input.trigger?(Input::B)
Sound.play_cancel
return_scene
elsif Input.trigger?(Input::R)
Sound.play_cursor
next_actor
elsif Input.trigger?(Input::L)
Sound.play_cursor
prev_actor
elsif Input.trigger?(Input::C)
@skill = @skill_window.skill
if @skill != nil
@actor.last_skill_id = @skill.id
end
if @actor.skill_can_use?(@skill)
if AYENE::SkillSpec::WEAPON_TYPE.include?(@skill.weapon_type)
if AYENE::SkillSpec::WEAPON_TYPE[@skill.weapon_type][1].include?(@actor.weapon_id)
Sound.play_decision
determine_skill
else
@spec_window.set_text(@skill.spec_text, 1)
Sound.play_buzzer
@spec_window.visible = true
@spec_window.active = true
@skill_window.active = false
end
else
@spec_window.set_text(@skill.spec_text, 1)
Sound.play_buzzer
@spec_window.visible = true
@spec_window.active = true
@skill_window.active = false
end
else
Sound.play_buzzer
end
end
end
def update_spec_selection
@frame < 50 ? @frame += 1 : @frame = 0
if @frame == 50
@spec_window.visible = false
@skill_window.active = true
@spec_window.active = false
end
end
end
class Window_Help < Window_Base
def initialize(x=0, y=0, w=544, h=WLH + 32)
super(x, y, w, h)
end
end
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Pią 22 Kwi, 2011 19:22
Aaa sorka, bo skrypt nie blokuje możliwość użycia podczas walki, a skoncentrowałam się tylko na Menu Zapomniałam o tym szczególe. Mój błąd
Podmień skrypt na poniższy:
Spoiler:
Kod:
#===================================================================
# Umiejętność dla konkretnego rodzaju broni [VX]
# by Ayene
# 20.04.2011 ver 2.0
# www.ultimateam.pl
#===================================================================
# Opis:
# Skrypt umożliwia ustawienie w oknie notatki, że dana umiejętność
# może być używana tylko wówczas, gdy bohater ma ekwipowany konkretny
# rodzaj broni.
#
# Instrukcja:
# By skorzystać ze skryptu w oknie 'Note' przy danej umiejętności
# w Bazie Danych umieść tekst <weapontype RODZAJ>, gdzie:
# RODZAJ - rodzaj broni według wzoru: 0 - miecze, 1 - młoty, itd.
# (patrz poniższa konfiguracja)
#
# Przykładowo:
# Jeśli chcesz, by postać mogła używać umiejętności dopiero, gdy jest
# ekwipowana w miecz to w oknie 'Note' tej umiejętności należy wpisać:
# <weapontype 1>
#
# Natomiast, gdy bohater może jej użyć dopiero z młotem:
# <weapontype 2>
#===================================================================
module AYENE
module SkillSpec
SKILL_SPEC = /<(?:WEAPONTYPE|weapontype)\s*(\d+)>/i
SKILL_WEAPON_TEXT = "Nie masz odpowiedniej broni do tej umiejętności."
class RPG::Skill
def skill_spec_ini
@weapon_type = 0
self.note.split(/[\r\n]+/).each { |line|
case line
when AYENE::SkillSpec::SKILL_SPEC
@weapon_type = $1.to_i
end
}
end
def weapon_type
skill_spec_ini if @weapon_type == nil
return @weapon_type
end
def spec_text
return AYENE::SkillSpec::SKILL_WEAPON_TEXT
end
end
class Window_Skill < Window_Selectable
def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
skill = @data[index]
if skill != nil
rect.width -= 4
enabled = @actor.skill_can_use?(skill)
if AYENE::SkillSpec::WEAPON_TYPE.include?(skill.weapon_type)
if not AYENE::SkillSpec::WEAPON_TYPE[skill.weapon_type][1].include?(@actor.weapon_id)
enabled = false
end
end
enabled = false if not AYENE::SkillSpec::WEAPON_TYPE.include?(skill.weapon_type)
draw_item_name(skill, rect.x, rect.y, enabled)
self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
end
end
end
class Scene_Skill < Scene_Base
alias aye_skillspec_scsk_start start
alias aye_skillspec_scsk_ter terminate
def terminate
aye_skillspec_scsk_ter
@spec_window.dispose
end
def update
super
update_menu_background
@help_window.update
@status_window.update
@skill_window.update
@target_window.update
@spec_window.update
if @skill_window.active
update_skill_selection
elsif @target_window.active
update_target_selection
elsif @spec_window.active
update_spec_selection
end
end
def update_skill_selection
if Input.trigger?(Input::B)
Sound.play_cancel
return_scene
elsif Input.trigger?(Input::R)
Sound.play_cursor
next_actor
elsif Input.trigger?(Input::L)
Sound.play_cursor
prev_actor
elsif Input.trigger?(Input::C)
@skill = @skill_window.skill
if @skill != nil
@actor.last_skill_id = @skill.id
end
if @actor.skill_can_use?(@skill)
if AYENE::SkillSpec::WEAPON_TYPE.include?(@skill.weapon_type)
if AYENE::SkillSpec::WEAPON_TYPE[@skill.weapon_type][1].include?(@actor.weapon_id)
Sound.play_decision
determine_skill
else
@spec_window.set_text(@skill.spec_text, 1)
Sound.play_buzzer
@spec_window.visible = true
@spec_window.active = true
@skill_window.active = false
end
else
@spec_window.set_text(@skill.spec_text, 1)
Sound.play_buzzer
@spec_window.visible = true
@spec_window.active = true
@skill_window.active = false
end
else
Sound.play_buzzer
end
end
end
def update_spec_selection
@frame < 50 ? @frame += 1 : @frame = 0
if @frame == 50
@spec_window.visible = false
@skill_window.active = true
@spec_window.active = false
end
end
end
class Window_Help < Window_Base
def initialize(x=0, y=0, w=544, h=WLH + 32)
super(x, y, w, h)
end
end
class Scene_Battle < Scene_Base
alias aye_skillspec_scbat_start start
alias aye_skillspec_scbat_ter terminate
Pomógł: 2 razy Dołączył: 01 Mar 2011 Posty: 41 Skąd: Okolice Wrocławia
Wysłany: Sob 23 Kwi, 2011 14:27
Korzystam z RPG Tankentai SBS 3.4d + ATB 1.2c Kaduki i wywala mi błąd z tym skryptem (z ostatnią jego wersją) więc skorzystałem z pierwotnej wersji z niewidzialnymi umiejętnościami.
Bardzo dziękuję Ayene, punkcik przyznany.
________________________ ------STAN PROJEKTU-------
Skrypty - 85%
Fabuła - 60%
Mapy - 10 %
Muzyka i Dźwięki - 100%
Baza Danych - 65% (około 800 z 1200 itemków)
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum