Pomoc ze skryptem
Aktualny czas: 28-04-26, 23:45 Witaj! Przejdź do zakładki Logowanie lub Rejestracja


Wątek zamknięty 
[XP] Pomoc ze skryptem
Chyziu Offline
*


Liczba postów: 39
Dołączył: 26-03-14

Pomógł: 0



Post: #1
Pomoc ze skryptem

Witam, posiadam skrypt na paski zdrowia oraz many nad postacią. Prezentuje się on tak:

#-------------------------------------------------------------#
#--------------------Paski HP i MP---------------------#
#--------------------by Nazgul king--------------------#
#-------------------------------------------------------------#
class Spriteset_Map
alias nk92_pasek_initialize initialize
alias nk92_pasek_update update
alias nk92_dispose dispose
def initialize
@pasek = Sprite.new
@pasek.bitmap = Bitmap.new(32,9)
@pasek.x = $game_player.screen_x - 16
@pasek.y = $game_player.screen_y - 64
@pasek.z = $game_player.screen_z + 1
rysuj_pasek
nk92_pasek_initialize
end
def update
nk92_pasek_update
@pasek.x = $game_player.screen_x - 16
@pasek.y = $game_player.screen_y - 64
@pasek.z = $game_player.screen_z + 1
rysuj_pasek
end
def dispose
nk92_dispose
@pasek.bitmap.dispose
@pasek.dispose
end
def rysuj_pasek
@pasek.bitmap.clear
@pasek.bitmap.fill_rect(0,0,32,9, Color.new(255,255,255))
@pasek.bitmap.fill_rect(1,1,30,3, Color.new(5,5,5))
@pasek.bitmap.fill_rect(1,5,30,3, Color.new(5,5,5))
zycie = 30 * $game_party.actors[0].hp / $game_party.actors[0].maxhp
@pasek.bitmap.fill_rect(1,1,zycie,3, Color.new(255,64,64))
magia = 30 * $game_party.actors[0].sp / $game_party.actors[0].maxsp
@pasek.bitmap.fill_rect(1,5,magia,3, Color.new(64,64,255))
end
end

Czy ktoś wie jak zrobić, aby wywołać ten skrypt za pomocą komendy w zdarzeniu? Byłbym wdzięczny za pomoc. :)
18-07-15 21:54
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Venesard Offline
*


Liczba postów: 226
Dołączył: 07-11-14

Pomógł: 37



Post: #2
RE: Pomoc ze skryptem

Z tego co widzę to się nie da, skrypt bazuje na zmiennych lokalnych do których nie można się odnieść z poziomu "Wywołaj skrypt".

Sam nie wiem czy coś tworzę.
19-07-15 09:58
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Mateusz SSJ8 Offline
*


Liczba postów: 511
Dołączył: 10-05-13

Pomógł: 40



Post: #3
RE: Pomoc ze skryptem

Ależ można się do nich odnieść, Venesard. Wystarczy w "Scene_Map" w definicji klasy umieścić "attr_reader :spriteset"

Swoją drogą to trochę bez sensu, bo paski powinny pojawić się automatycznie przy inicjalizowaniu klasy. Sprecyzujswój problem bardziej, Chyziu.

Nienawidzony i nienawidzący. Przez nienawiść tego drugiego obaj będą martwi.
20-07-15 06:17
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Venesard Offline
*


Liczba postów: 226
Dołączył: 07-11-14

Pomógł: 37



Post: #4
RE: Pomoc ze skryptem

Tak, w ten sposób można. Ale nie można tego zrobić bez ingerencji w kolejne skrypty tak jak o to zapytał Chyziu :)

Sam nie wiem czy coś tworzę.
20-07-15 08:12
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Adrapnikram Offline
*


Liczba postów: 571
Dołączył: 04-10-13

Pomógł: 45



Post: #5
RE: Pomoc ze skryptem

A można po prostu zamienić zmienne lokalne na globalne?
Czy jest zakaz?
20-07-15 10:37
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Chyziu Offline
*


Liczba postów: 39
Dołączył: 26-03-14

Pomógł: 0



Post: #6
RE: Pomoc ze skryptem

(20-07-15 06:17)Mateusz SSJ8 napisał(a):  Ależ można się do nich odnieść, Venesard. Wystarczy w "Scene_Map" w definicji klasy umieścić "attr_reader :spriteset"

Swoją drogą to trochę bez sensu, bo paski powinny pojawić się automatycznie przy inicjalizowaniu klasy. Sprecyzujswój problem bardziej, Chyziu.

Problem jest w tym, że mam zrobione krótkie intro w którym przez jakiś czas występuje czarny ekran. Bohatera i elementów tilesetu nie widać tylko te nieszczęsne paski są na widoku. I chciałbym zrobić tak, żeby wywołać ten skrypt po zakończeniu intra.
20-07-15 12:13
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Mateusz SSJ8 Offline
*


Liczba postów: 511
Dołączył: 10-05-13

Pomógł: 40



Post: #7
RE: Pomoc ze skryptem

Czyli trafiłem z nadaniem "@spriteset" w klasie "Scene_Map" atrybutu "read". Teraz pozostaje tylko w "Spriteset_Map" dopisać gdzieś poza funkcją "attr_reader :pasek" i możesz już wywołać zmianę ustawień pasków. Po prostu walnij w "wykonaj skrypt"
scene_variable.spriteset.pasek.visible = true/false
Miej jednak na uwadze, że po zmianie ekranu na np. "Scene_Menu", a następnie przywrócenie go z powrotem na "Scene_Map" (w wyniku działań zdarzenia) konieczne będzie walnąć tę komendę jeszcze raz.

Nienawidzony i nienawidzący. Przez nienawiść tego drugiego obaj będą martwi.
20-07-15 14:51
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Wątek zamknięty 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości

Kontakt | Ultima Forum | Wróć do góry | Wróć do forów | Wersja bez grafiki | RSS
Powered By MyBB. © 2013 MyBB Group. All Rights Reserved.
Skórka by Ayene.