![]() |
|
[XP] Pomoc ze skryptem - Wersja do druku +- Ultima Forum (https://forum.ultimateam.pl) +-- Dział: RPG Maker (/Forum-RPG-Maker) +--- Dział: Wsparcie (/Forum-Wsparcie) +--- Wątek: [XP] Pomoc ze skryptem (/Thread-XP-Pomoc-ze-skryptem) |
Pomoc ze skryptem - Chyziu - 18-07-15 21:54 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. :) RE: Pomoc ze skryptem - Venesard - 19-07-15 09:58 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". RE: Pomoc ze skryptem - Mateusz SSJ8 - 20-07-15 06:17 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. RE: Pomoc ze skryptem - Venesard - 20-07-15 08:12 Tak, w ten sposób można. Ale nie można tego zrobić bez ingerencji w kolejne skrypty tak jak o to zapytał Chyziu :) RE: Pomoc ze skryptem - Adrapnikram - 20-07-15 10:37 A można po prostu zamienić zmienne lokalne na globalne? Czy jest zakaz? RE: Pomoc ze skryptem - Chyziu - 20-07-15 12:13 (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" 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. RE: Pomoc ze skryptem - Mateusz SSJ8 - 20-07-15 14:51 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" Kod: scene_variable.spriteset.pasek.visible = true/false |