Ayene - Czw 22 Paź, 2009 12:50 Temat postu: Zmiana drużynyLord Khartos - Nie 25 Paź, 2009 09:57 A czy mógłbym ustawić aby było dostępne
wybranie tylko jednego bohatera Ayene - Nie 25 Paź, 2009 10:57 Musiałbyś wywołać skrypt
Kod:
$data_actors[ID].unavailable = true
i w miejsce ID wpisz numer bohatera, który ma być niedostępny. Komendę powiel tyle razy, ilu ma być niedostępnych postaci. Wtedy jeśli masz 6 bohaterów, a 5 z nich ustawisz jako niedostępnych, wówczas będziesz miał tylko jednego do wyboru.Lord Khartos - Pon 26 Paź, 2009 17:32 OK Dzięki to się przyda przy stopniowaniu klas. A gdybym na przykład chciał mieć tylko jednego bohatera maksymalnie.
Tzn. czy można jakoś zablokować te dodatkowe sloty albo zmienić ich ilość.Ayene - Pon 26 Paź, 2009 18:42 By ustawić maksymalną ilość osób w drużynie na 1 musiałbyś zamienić cześć skryptu, a dokładniej całą klasę Window_CurrentParty na poniższy kod:
Spoiler:
Kod:
class Window_CurrentParty < Window_Selectable
def initialize
super(48, 80, 256, 64)
@item_max = 1 # było 4
@column_max = @item_max
create_contents
self.index = 0
refresh
end
def member
return $game_party.members[self.index]
end
def refresh
for i in 0...@item_max
rect = item_rect(i)
self.contents.clear_rect(rect)
end
for i in 0...$game_party.members.size
rect = item_rect(i)
bitmap = Cache.character($game_party.members[i].character_name)
sign = $game_party.members[i].character_name[/^[\!\$]./]
if sign != nil and sign.include?('$')
cw = bitmap.width / 3
ch = bitmap.height / 4
else
cw = bitmap.width / 12
ch = bitmap.height / 8
end
n = $game_party.members[i].character_index
src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
if $game_party.members[i].actor.unavailable
self.contents.blt(rect.x, rect.y, bitmap, src_rect, 128)
else
self.contents.blt(rect.x, rect.y, bitmap, src_rect, 255)
end
if $game_party.members[i].actor.required
lock_bitmap = Cache.system("Locked")
self.contents.blt(rect.x + rect.width - lock_bitmap.width,
rect.y + rect.height - lock_bitmap.height,
lock_bitmap, lock_bitmap.rect)
end
end
end
def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.width = 32
# rect.width = (contents.width + @spacing) / @column_max - @spacing
rect.height = 32
rect.x = index % @column_max * (rect.width + @spacing)
rect.y = index / @column_max * 32
return rect
end
end
Lecz ten zabieg całkowicie uniemożliwia wybór więcej niż jednej osoby. Jeśli jednak chodzi Tobie o to, by w wybranym momencie gry ograniczyć graczowi wybór, a po jakimś czasie rozszerzyć z 1 postaci do 4, wówczas trzeba by było przerobić nieco skrypt - najłatwiejszym chyba sposobem byłoby użycie przełącznika...Lord Khartos - Wto 27 Paź, 2009 15:42 Wszystko działa tzn. pewnie działałoby ale niestety mam
tylko 64 mb RAM i wyskakuje komunikat że mam za mało
pamięci wirtualnej ale na pewno by działało.Ozzma - Wto 27 Paź, 2009 17:36 Czyli rozumiem, że wystarczy zmienić @item_max w Window_CurrentParty, tak? Bo chciałabym zrobić 3 osobową drużynę.Ayene - Wto 27 Paź, 2009 17:42 Tak, to całkowicie wystarcza Może pojawić się tylko drobny błąd w wyświetlaniu okienka, ale wówczas wystarczy, że w powyższej klasie (Window_CurrentParty) zmienisz część kodu
Agumon - Sob 13 Lut, 2010 20:31 A ja mam taki problem...
Bo ustawiłem sobie do wyboru 3 postacie i jak wybrałem jedną to mogłem wybierać następne...
A chciałbym zrobić takie coś że jak wybiorę jedną to tych następnych nie będę mógł brać...
Kopiuj i wklej | Ctrl+C i Ctrl+V xD
Nie zrozumiecie ale Ayene powinna xDAyene - Sob 13 Lut, 2010 21:02 W takim razie przejdź do linijki 222 i:
Na początku gry ustaw zmienną nr 1 na 2 - 2 to będzie maksymalna ilość bohaterów w drużynie. Później jak będziesz chciał to zmienić to możesz dowolnie zmienić na domyślne, czyli na 4.Czeliosss - Pon 03 Maj, 2010 16:57 A można usunąć Face'a, bo gorzej wygląda lub skalowało go.
Ogólnie dobry skrypt.
Pzdr.Sabikku - Pon 03 Maj, 2010 17:19 Fragment
Kod:
self.draw_actor_face(@member, x, y, 48)
self.draw_actor_name(@member, x + 52, y)
self.draw_actor_class(@member, x + 52, y + WLH)
zamień na:
Kod:
self.draw_actor_name(@member, x, y)
self.draw_actor_class(@member, x, y + WLH)
cj2 - Pon 03 Maj, 2010 19:25 Jak zrobić by jedna postać nie mogła chodzić sama ? :PAyene - Pon 03 Maj, 2010 20:14 Czyli w drużynie mają być minimalnie dwie osoby tak?
Dodaj na początku skryptu:
Kod:
module Ayene
MINIMALNIE_W_DRUŻYNIE = 2 # minimalna ilość osób w drużynie
end
cj2 - Wto 04 Maj, 2010 05:24 zdaje się że źle wytłumaczyłem. Są 4 postacie. 1 z nich nie może chodzić sama (zwierzątko). Inne mogą chodzić sameSabikku - Wto 04 Maj, 2010 05:55 Wprawdzie nie mam rmvx i jak przetestować, przyjrzeć się skryptowi, ale spróbuj 387 linijkę podmienić na:
Kod:
if ($game_party.members.size == 0 and @command_window.index < 1) or ($game_party.members.size==1 and $game_party.members[0].actor_id==idkota)
Zamiast idkota daj id bohatera kota. Powtarzam, strzał w ciemno ;).cj2 - Wto 04 Maj, 2010 06:25
Sabikku napisał/a:
Wprawdzie nie mam rmvx i jak przetestować, przyjrzeć się skryptowi, ale spróbuj 387 linijkę podmienić na:
Kod:
if ($game_party.members.size == 0 and @command_window.index < 1) or ($game_party.members.size==1 and $game_party.members[0].actor_id==idkota)
Zamiast idkota daj id bohatera kota. Powtarzam, strzał w ciemno ;).
Nie działa gdyż to nie kot.
No dobra wiem że to nie wina kota.Ale i tak nie działa.Czeliosss - Wto 21 Gru, 2010 18:27 A można prosić o to, żeby dana postać była liderem tzn. na 1 miejscu?Ayene - Sro 22 Gru, 2010 13:05 Wyjaśnij, o co dokładnie Ci chodzi, bo ja nie za bardzo rozumiem.Czeliosss - Sro 22 Gru, 2010 14:33 Ehh.
Np. Po przemianie postaci np. w szczura postać usuwamy i dodajemy owego szczura.
Ja bym chciał, aby ten szczur był na pierwszym miejscu w drużynie czyli liderem.Ayene - Sro 22 Gru, 2010 17:28 Czeliosss, a jak to się ma do tego skryptu? Przecież to jest osobne zamówienie?
Po usunięciu szczura i dodaniu na nowo członka drużyny wywołaj skrypt: