field.lua 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. -- helper function that changes field maps through fadein and fadeout
  2. load_field_map_request = function( map_name, point_name )
  3. if type( map_name ) == "string" and map_name ~= "" then
  4. System.MapChanger.map_name = map_name
  5. System.MapChanger.point_name = point_name
  6. script:request( Script.SYSTEM, "MapChanger", "ffvii_field", 0 )
  7. end
  8. end
  9. set_entity_to_character = function( entity_name, character_name )
  10. if character_name == FFVII.Party[ 1 ] and entity_name ~= "" then
  11. if System.MapChanger.point_name ~= "" then
  12. local point = entity_manager:get_entity_point( System.MapChanger.point_name )
  13. if point ~= nil then
  14. local x, y, z = point:get_position()
  15. local rotation = point:get_rotation()
  16. local player = entity_manager:get_entity( entity_name )
  17. player:set_position( x, y, z )
  18. player:set_rotation( rotation )
  19. player:set_solid( true )
  20. player:set_visible( true )
  21. end
  22. end
  23. entity_manager:set_player_entity( entity_name )
  24. end
  25. end
  26. player_lock = function( lock )
  27. entity_manager:player_lock( lock )
  28. FFVII.MenuSettings.available = ( lock == false )
  29. end
  30. System[ "MapChanger" ] = {
  31. map_name = "",
  32. point_name = "",
  33. ffvii_field = function( self )
  34. if self.map_name ~= "" then
  35. player_lock( true ) -- disable menu and pc movement while load map
  36. script:request_end_sync( Script.UI, "Fade", "fade_out", 0 )
  37. map( self.map_name )
  38. player_lock( false ) -- enable menu and pc movement after load map
  39. self.map_name = ""
  40. script:request_end_sync( Script.UI, "Fade", "fade_in", 0 )
  41. end
  42. return 0
  43. end,
  44. ffvii_battle = function( self )
  45. if self.map_name ~= "" then
  46. player_lock( true ) -- disable menu and pc movement while load map
  47. script:request_end_sync( Script.UI, "Fade", "fade_out", 0 )
  48. map( self.map_name )
  49. -- load battle ui
  50. -- load player entity
  51. self.map_name = ""
  52. script:request_end_sync( Script.UI, "Fade", "fade_in", 0 )
  53. end
  54. return 0
  55. end,
  56. }