Problem ze skryptem
Aktualny czas: 28-04-26, 22:15 Witaj! Przejdź do zakładki Logowanie lub Rejestracja


Wątek zamknięty 
[XP] Problem ze skryptem
dudekmenPL Offline
*


Liczba postów: 93
Dołączył: 11-08-15

Pomógł: 1



Post: #1
Problem ze skryptem

Witam mam problem ze skryptem :
#================================
# ? Light Effects
#================================
# ?By: Near Fantastica
#   Date: 28.06.05
#   Version: 3
#================================
#==========INSTRUCTIONS==========

#The first Comment event command in an event should read "Light Effects".  The
#comment event command immediately following it should read "Ground", "Fire",
#"Lamppost", "LeftLantern", or "RightLantern".
#================================
class Spriteset_Map
  #--------------------------------------------------------------
  alias les_spriteset_map_initalize initialize
  alias les_spriteset_map_dispose dispose
  alias les_spriteset_map_update update
  #--------------------------------------------------------------
  def initialize
     @light_effects = []
     setup_lights
     les_spriteset_map_initalize
     update
  end
  #--------------------------------------------------------------
  def dispose
     les_spriteset_map_dispose
     for effect in @light_effects
       effect.light.dispose
     end
     @light_effects = []
  end
  #--------------------------------------------------------------
  def update
     les_spriteset_map_update
     update_light_effects
  end
  #--------------------------------------------------------------
  def setup_lights
     for event in $game_map.events.values
       next if event.list == nil
       for i in 0...event.list.size
         if event.list[i].code == 108 and event.list[i].parameters == ["Light Effects"]
           type = event.list[i+1].parameters.to_s
           case type.upcase!
           when "GROUND"
             light_effects = Light_Effect.new(event,type)
             light_effects.light.zoom_x = 200 / 100.0
             light_effects.light.zoom_y = 200 / 100.0
             light_effects.light.opacity = 51
             @light_effects.push(light_effects)
           when "FIRE"
             light_effects = Light_Effect.new(event,type)
             light_effects.light.zoom_x = 300 / 100.0
             light_effects.light.zoom_y = 300 / 100.0
             light_effects.light.opacity = 85
             @light_effects.push(light_effects)
           when "LAMPPOST"
             light_effects = Light_Effect.new(event,"LEFT LAMP POST")
             light_effects.light.opacity = 51
             @light_effects.push(light_effects)
             light_effects = Light_Effect.new(event,"RIGHT LAMP POST")
             light_effects.light.opacity = 51
             @light_effects.push(light_effects)
           when "LEFTLANTERN"
             light_effects = Light_Effect.new(event,type)
             light_effects.light.opacity = 150
             @light_effects.push(light_effects)
           when "RIGHTLANTERN"
             light_effects = Light_Effect.new(event,type)
             light_effects.light.opacity = 150
             @light_effects.push(light_effects)
           end
         end
       end
     end
     for effect in @light_effects
       case effect.type
       when "GROUND"
         effect.light.x = (effect.event.real_x - 200 - $game_map.display_x) / 4
         effect.light.y = (effect.event.real_y - 200 - $game_map.display_y) / 4
       when "FIRE"
         effect.light.x = (effect.event.real_x - 300 - $game_map.display_x) / 4
         effect.light.y = (effect.event.real_y - 300 - $game_map.display_y) / 4
       when "LEFT LAMP POST"
         effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 5
         effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 15
       when "RIGHT LAMP POST"
         effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 25
         effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 15
       when "LEFTLANTERN"
         effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 20
         effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 5
       when "RIGHTLANTERN"
         effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 10
         effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 5
       end
     end
  end
  #--------------------------------------------------------------
  def update_light_effects
     for effect in @light_effects
       next if not in_range?(effect.event)
       case effect.type
       when "GROUND"
         effect.light.x = (effect.event.real_x - 200 - $game_map.display_x) / 4
         effect.light.y = (effect.event.real_y - 200 - $game_map.display_y) / 4
       when "FIRE"
         effect.light.x = (effect.event.real_x - 300 - $game_map.display_x) / 4
         effect.light.y = (effect.event.real_y - 300 - $game_map.display_y) / 4
       when "LEFT LAMP POST"
         effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 5
         effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 15
       when "RIGHT LAMP POST"
         effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 25
         effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 15
       when "LEFTLANTERN"
         effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 20
         effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 5
       when "RIGHTLANTERN"
         effect.light.x = (-0.25 * $game_map.display_x) + (effect.event.x * 32) - 10
         effect.light.y = (-0.25 * $game_map.display_y) + (effect.event.y * 32) - 5
       end
     end
  end
  #--------------------------------------------------------------
  def in_range?(object)
     screne_x = $game_map.display_x
     screne_x -= 256
     screne_y = $game_map.display_y
     screne_y -= 256
     screne_width = $game_map.display_x
     screne_width += 2816
     screne_height = $game_map.display_y
     screne_height += 2176
     return false if object.real_x <= screne_x
     return false if object.real_x >= screne_width
     return false if object.real_y <= screne_y
     return false if object.real_y >= screne_height
     return true
  end
end

#================================
# ? Light Effects Class
#================================

class Light_Effect
  #--------------------------------------------------------------
  attr_accessor :light
  attr_accessor :event
  attr_accessor :type
  #--------------------------------------------------------------
  def initialize(event, type)
     @light = Sprite.new
     @light.bitmap = RPG::Cache.picture("LE.PNG")
     @light.visible = true
     @light.z = 1000
     @event = event
     @type = type
  end
end

Kiedy wchodzę na mapę na której użyłem komentarzy(tak jak pisze w instrukcji)
gra wygląda jak bym ustawił opcje "czekaj"/lub jak by się zawieszała

Z góry dzięki za pomoc mrgreen

Obecny projekt INVISUS
Fp : https://www.facebook.com/TheGameProject/
28-12-15 11:08
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
kanumerki Offline
*


Liczba postów: 247
Dołączył: 02-05-13

Pomógł: 45



Post: #2
RE: Problem ze skryptem

Masz jakieś zdarzenie ustawione na równoległe lub autostart?

Stary nick:ka0909
Pomagam w przerabianiu lekkich skryptów smiles
28-12-15 21:56
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
dudekmenPL Offline
*


Liczba postów: 93
Dołączył: 11-08-15

Pomógł: 1



Post: #3
RE: Problem ze skryptem

(28-12-15 21:56)kanumerki napisał(a):  Masz jakieś zdarzenie ustawione na równoległe lub autostart?


Mam na auto start

Obecny projekt INVISUS
Fp : https://www.facebook.com/TheGameProject/
29-12-15 11:42
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
takikaki012 Offline
*


Liczba postów: 207
Dołączył: 16-06-14

Pomógł: 12



Post: #4
RE: Problem ze skryptem

Tu zapewne jest problem ;) Kiedy dajesz zdarzenie na "Autostart" ono wykonuje się cały czas, czego skutkiem jest zawieszenie się gry. Jeśli chcesz aby zdarzenie działało za każdym razem kiedy chodzisz na mapę, to po wszystkich poleceniach w zdarzeniu, z ustawionym autostartem dajesz "Usuń Zdarzenie".
29-12-15 21:08
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a): dudekmenPL
dudekmenPL Offline
*


Liczba postów: 93
Dołączył: 11-08-15

Pomógł: 1



Post: #5
RE: Problem ze skryptem

(29-12-15 21:08)KacpiPL napisał(a):  Tu zapewne jest problem ;) Kiedy dajesz zdarzenie na "Autostart" ono wykonuje się cały czas, czego skutkiem jest zawieszenie się gry. Jeśli chcesz aby zdarzenie działało za każdym razem kiedy chodzisz na mapę, to po wszystkich poleceniach w zdarzeniu, z ustawionym autostartem dajesz "Usuń Zdarzenie".

A czy jak dam usuń zdarzenie to po rozpoczęciu nie usunie się od razu ?

@RE: Po ustawieniu najlepiej dać "Po naciśnięciu przycisku" wtedy działa skrypt, KacpiPL dzięki za pomoc

Obecny projekt INVISUS
Fp : https://www.facebook.com/TheGameProject/
(Ten post był ostatnio modyfikowany: 29-12-15 21:43 przez dudekmenPL.)
29-12-15 21:38
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.