Плохо! Плохо!:  0
Показано с 1 по 8 из 8

Тема: Погода (Game Weather)

  1. #1

    По умолчанию Погода (Game Weather)

    Погода (Game Weather)
    Автор: Я (Денис Кузнецов)
    Версия: 3.0 от 22.07.15
    Тип: Геймплей

    Описание:
    Погодные условия с возможностью отображения нескольких погодных условий одновременно

    Использование:
    Вся инструкция и настройки в шапке скрипта!

    Скриншоты от версии 2.2:
    Спойлер Скриншоты:


    Демо:
    Демо v.2.2

    Скрипт:
    Спойлер Код:
    Код:
    =begin
    ###############################################################################
    #                                                                             #
    #            	 	Система погодных условий для RPG MAKER VX ACE   			        #
    #                                                                             #
    ###############################################################################
     
    Автор: Денис Кузнецов (http://vk.com/id8137201)
    Группа ВК: https://vk.com/scriptsrpgmakervxace
    Версия: 3.0
    Релиз от: 22.07.15
    
    Требуется набор графики в папке Graphics/Game_Weather
     
    ############# ИНСТРУКЦИЯ #######################################################
     
     Чтобы установить погоду используйте вызов скрипта: 
     
    	start_weather(type, power, name, stop_all)
     
    	где type - тип отображаемой погоды
    	power - сила погоды (кол-во спрайтов также зависит от настройки ниже)
    	name - имя графики (например, "Snow")
    	stop_all - остановить всю погоду, чтобы на экране была только эта
    	stop_all может быть или true, или false (остановить / не останавливать) 
     
    	есть следующие типы (type) погоды:
    
    	0 	- диагонально слева направо вниз (обычная скорость)
    	1 	- вертикально сверху вниз (обычная скорость)
    	2 	- диагонально справа налево вниз (обычная скорость)
    	3 	- горизонтально налево (обычная скорость)
    	4 	- диагонально справа налево вверх (обычная скорость)
    	5 	- вертикально вверх (обычная скорость)
    	6 	- диагонально справа налево вверх (обычная скорость)
    	7 	- горизонтально направо (обычная скорость)
    	8 	- диагонально слева направо вниз (быстрая скорость)
    	9 	- вертикально сверху вниз (быстрая скорость)
    	10 	- диагонально справа налево вниз (быстрая скорость)
    	11 	- горизонтально налево (быстрая скорость)
    	12	- диагонально справа налево вверх (быстрая скорость)
    	13 	- вертикально вверх (быстрая скорость)
    	14 	- диагонально справа налево вверх (быстрая скорость)
    	15 	- горизонтально направо (быстрая скорость)
    	16	- случайное
     
    	Погоду можно ставить на паузу, снимать с паузы (продолжать) и останавливать
    	для этого используйте скрипты:
     
    	1. stop_all_weather - остановит всю погоду
     
    	2. stop_weather(index) - остановит одну погоду с индексом. 
    	По умолчанию index = 0. Нумерация всегда с 0.
     
    	3. pause_all_weather и continue_all_weather поставят на паузу и продолжат все
    	погодные условия соответственно
     
    	4. pause_weather(index) - ставит на пазу одну погоду с номером.
     
    	5. continue_weather(index) - продолжает одну погоду с номером.
    
    	6. weather_exist?(type, name) - проверка на существование погоды (true или false)
    
    	7. weather_amount - узнать количество погодных условий на экране (вернет -1, если какая-то ошибка)
    
    	8. toggle_weather_in_battle - переключить использование погоды в битве
    
    	9. setup_weather_in_battle(setup) - установить использование погоды в битве (true - вкл., false - выкл.)
     
    =end
    
    ############# НАТРОЙКА #########################################################
    
    module Game_Weather_Settings
    	
    	# Количество одновременных погодных условий
    	$GAME_WEATHER_LIMIT = 2
    	
    	# Коэффициент силы. Влияет на количество спрайтов погоды
    	$GAME_WEATHER_POWER = 15
    	
    	# Использовать погоду в битвах ? true/false (да/нет)
    	$GAME_WEATHER_IN_BATTLE = false
    	
    	# Глубина погоды Z
    	GAME_WEATHER_Z = 200
    	
    	# Пользовательские типы погоды. Нумерация при вызове скрипта начинается с 17.
    	# [ Направление движения, инвертировать направление (true/false), скорость, вращение (true/false) ]
    	
    	# Направления движения.
    	# 0 - диагонально слева направо вниз
    	# 1 - вертикально сверху вниз
    	# 2 - диагонально справа налево вниз
    	# 3 - горизонтально налево
    	
    	# Скорость
    	# false - обычная
    	# true - быстрая
    	
    	GAME_WEATHER_CUSTOM_TYPES =
    	[
    		[0, false, false, true],
    		[1, true, true, true],
    		[2, false, false, true],
    		[3, true, true, true]
    	]
    	
    end # module Game_Weather_Settings
    
    ############# КОНЕЦ НАСТРОЙКИ ##################################################
    ############# НИЖЕ НЕ ТРОГАТЬ !!! ##############################################
    
    module Cache
    	
    	def self.weather(filename)
    		load_bitmap("Graphics/Game_Weather/", filename)
    	end
    	
    end # module Cache
    
    class Game_Weather_Functions
    	
    	include Game_Weather_Settings
    	
    	def self.weather_type_settings(type)
    		case type
    		when 0; 													return type_0
    		when 1; 													return type_1
    		when 2; 													return type_2
    		when 3; 													return type_3
    		when 4; 													return type_0(true)
    		when 5; 													return type_1(true)
    		when 6; 													return type_2(true)
    		when 7; 													return type_3(true)
    		when 8; 													return type_0(false, true)
    		when 9; 													return type_1(false, true)
    		when 10; 													return type_2(false, true)
    		when 11; 													return type_3(false, true)
    		when 12; 													return type_0(true, true)
    		when 13; 													return type_1(true, true)
    		when 14; 													return type_2(true, true)
    		when 15; 													return type_3(true, true)
    		when 16; 													return random
    		when 17..17 + GAME_WEATHER_CUSTOM_TYPES.size; 	return custom_type(GAME_WEATHER_CUSTOM_TYPES[type - 17])
    		end
    	end
    	
    	def self.type_0(invert = false, fast = false)
    		x = (rand(2) == 0 ? -rand(Graphics.width / 2) : Graphics.width + rand(Graphics.width / 2))
    		y = (rand(2) == 0 ? -rand(Graphics.height / 2) : Graphics.height + rand(Graphics.height / 2))
    		opacity = 1
    		angle = 0
    		zoom = (rand(100) + 50) / 100.0
    		x_speed = [[rand(15), 5].max, 10].min
    		x_speed *= -1 if invert
    		x_speed *= 1.5 if fast
    		y_speed = [[rand(15), 5].max, 10].min
    		y_speed *= -1 if invert
    		y_speed *= 1.2 if fast
    		opacity_speed = [10, rand(15)].max
    		opacity_speed = 20 if fast
    		angle_speed = rand(3)
    		angle_speed *= 2 if fast
    		return x, y, opacity, angle, zoom, x_speed, y_speed, opacity_speed, angle_speed
    	end
    	
    	def self.type_1(invert = false, fast = false)
    		x = rand(Graphics.width)
    		y = (rand(2) == 0 ? -rand(Graphics.height / 2) : Graphics.height + rand(Graphics.height / 2))
    		opacity = 1
    		angle = 0
    		zoom = (rand(100) + 50) / 100.0
    		x_speed = 0
    		y_speed = [[rand(10) + 3, 5].max, 15].min + rand(10)
    		y_speed *= -1 if invert
    		y_speed *= 1.1 if fast
    		opacity_speed = [10, rand(15)].max
    		opacity_speed = 20 if fast
    		angle_speed = 0
    		return x, y, opacity, angle, zoom, x_speed, y_speed, opacity_speed, angle_speed
    	end
    	
    	def self.type_2(invert = false, fast = false)
    		x = (rand(2) == 0 ? -rand(Graphics.width / 2) : Graphics.width + rand(Graphics.width / 2))
    		y = (rand(2) == 0 ? -rand(Graphics.height / 2) : Graphics.height + rand(Graphics.height / 2))
    		opacity = 1
    		angle = 0
    		zoom = (rand(100) + 50) / 100.0
    		x_speed = -[[rand(15), 5].max, 10].min
    		x_speed *= -1 if invert
    		x_speed *= 1.2 if fast
    		y_speed = [[rand(15), 5].max, 10].min
    		y_speed *= -1 if invert
    		y_speed *= 1.2 if fast
    		opacity_speed = [10, rand(15)].max
    		angle_speed = rand(3)
    		angle_speed *= 2 if fast
    		return x, y, opacity, angle, zoom, x_speed, y_speed, opacity_speed, angle_speed
    	end
    	
    	def self.type_3(invert = false, fast = false)
    		x = (rand(2) == 0 ? -rand(Graphics.width / 2) : Graphics.width + rand(Graphics.width / 2))
    		y = rand(Graphics.height)
    		opacity = 1
    		angle = rand(360)
    		zoom = (rand(100) + 50) / 100.0
    		x_speed = -[[rand(15), 5].max, 10].min
    		x_speed *= -1 if invert
    		x_speed *= 1.5 if fast
    		y_speed = 0
    		opacity_speed = [10, rand(15)].max
    		angle_speed = rand(3)
    		angle_speed *= 2 if fast
    		return x, y, opacity, angle, zoom, x_speed, y_speed, opacity_speed, angle_speed
    	end
    	
    	def self.random
    		x = rand(Graphics.width)
    		y = rand(Graphics.height)
    		opacity = 1
    		angle = rand(360)
    		zoom = zoom = (rand(100) + 50) / 100.0
    		x_speed = [[rand(7), 1].max, 10].min
    		y_speed = [[rand(7), 1].max, 10].min
    		x_speed *= -1 if rand(2) == 1
    		y_speed *= -1 if rand(2) == 1
    		opacity_speed = 10
    		angle_speed = 0
    		return x, y, opacity, angle, zoom, x_speed, y_speed, opacity_speed, angle_speed
    	end
    	
    	def self.custom_type(custom)
    		type = custom[0]
    		invert = custom[1]
    		fast = custom[2]
    		settings = eval("type_#{type}(#{invert.to_s}, #{fast.to_s})")
    		settings[-1] = rand(3) if custom[4]
    		return settings
    	end
    	
    end # class Game_Weather_Functions
    
    $imported = {} if $imported.nil?
    $imported["DenKyz_Game_Weather"] = true
    
    class Game_Weather
    	
    	include Game_Weather_Settings
    	
    	attr_accessor :weather
    	
    	def initialize
    		@viewport = Viewport.new
    		@viewport.z = GAME_WEATHER_Z
    		@weather = []
    	end
    	
    	# Создаем новую погоду
    	def start_weather(type, power, name, stop_all)
    		stop_all_weather if stop_all
    		stop_weather(0) if @weather.size == $GAME_WEATHER_LIMIT && !stop_all # останавливаем первую погоду, если лимит превышен
    		@weather.push(Game_Weather_Weather.new(@viewport, type, power, name))
    	end
    	
    	# Перезагружаем погоду
    	def refresh
    		return if @weather == []
    		@weather.each do |index|
    			index.refresh
    		end
    	end
    	
    	# Обновляем погоду
    	def update
    		return if @weather == []
    		check_dispose
    		@weather.each do |index|
    			index.update
    		end
    	end
    	
    	# Удаляем спрайты погоды, но не убираем класс погоды
    	def dispose_sprites
    		return if @weather == []
    		@weather.each do |index|
    			index.dispose
    		end
    	end
    	
    	# Проверка на удаление погоды
    	def check_dispose
    		@weather.each do |index|
    			return dispose_weather(index) if index.stop_state == 2
    		end
    	end
    	
    	# Остановка одной погоды
    	def stop_weather(index)
    		return if !index.is_a?(Integer) && index.nil?
    		return if index.is_a?(Integer) && @weather[index].nil?
    		if index.is_a?(Integer)
    			@weather[index].stop
    		else
    			index.stop
    		end
    	end
    	
    	# Остановка всей погоды
    	def stop_all_weather
    		@weather.each do |index|
    			stop_weather(index)
    		end
    	end
    	
    	# Пауза одной погоды
    	def pause_weather(index)
    		return if !index.is_a?(Integer) && index.nil?
    		return if index.is_a?(Integer) && @weather[index].nil?
    		if index.is_a?(Integer)
    			@weather[index].pause
    		else
    			index.pause
    		end
    	end
    	
    	# Пауза всей погоды
    	def pause_all_weather
    		@weather.each do |index|
    			pause_weather(index)
    		end
    	end
    	
    	# Продолжить одну погоду
    	def continue_weather(index)
    		return if !index.is_a?(Integer) && index.nil?
    		return if index.is_a?(Integer) && @weather[index].nil?
    		if index.is_a?(Integer)
    			@weather[index].continue
    		else
    			index.continue
    		end
    	end
    	
    	# Продолжить всю погоду
    	def continue_all_weather
    		@weather.each do |index|
    			continue_weather(index)
    		end
    	end
    	
    	# Проверка на существование погоды
    	def weather_exist?(type, name)
    		return false if @weather == []
    		@weather.each do |index|
    			return true if index.type == type && index.name == name
    		end
    		return false
    	end
    	
    	# Удалить одну погоду
    	def dispose_weather(index)
    		return if index.nil?
    		index = @weather.index(index)
    		@weather[index].dispose
    		@weather[index] = nil
    		@weather.compact!
    	end
    	
    	# Сохраняем погоду
    	def make_save_contents
    		content = []
    		return content if @weather == []
    		@weather.each do |index|
    			content.push([index.type, index.power, index.name])
    		end
    		return content
    	end
    	
    	# Загружаем погоду
    	def extract_save_contents(content)
    		stop_all_weather
    		content.each do |index|
    			start_weather(index[0], index[1], index[2], false)
    		end
    	end
    	
    end # class Game_Weather
    
    class Game_Weather_Weather
    	
    	attr_accessor :type
    	attr_reader :power
    	attr_reader :name
    	attr_reader :stop_state
    	
    	def initialize(viewport, type, power, name)
    		@viewport = viewport
    		@type = type
    		@power = power
    		@sprite_power = @power
    		@sprite_power = 1 if @power < 1
    		@sprite_power = [[@sprite_power * $GAME_WEATHER_POWER + rand(25), @sprite_power].max, 999].min
    		@name = name
    		@stop_state = 0 # 0 - ничего, 1 - затухание, 2 - можно удалить
    		@sprites = []
    		setup_weather
    	end
    	
    	def setup_weather
    		@sprite_power.times do
    			@sprites.push(Game_Weather_Sprite.new(@viewport, @type, @name))
    		end
    	end
    	
    	def type=(type)
    		@type = type
    		@sprites.each do |index|
    			index.type = @type
    		end
    	end
    	
    	def stop
    		@stop_state = 1
    		@sprites.each do |index|
    			index.stop
    		end
    	end
    	
    	def pause
    		stop
    		@stop_state = 0
    	end
    	
    	def continue
    		@sprites.each do |index|
    			index.continue
    		end
    	end
    	
    	# Проверка на удаление погоды (90% спрайтов имеют 0 прозрачность)
    	def check_stop_state
    		amount = 0
    		@sprites.each do |index|
    			amount += 1 if index.sprite.opacity == 0
    		end
    		@stop_state = 2 if amount >= @sprite_power * 0.9
    	end
    	
    	def refresh
    		@sprites.each do |index|
    			index.refresh
    		end
    	end
    	
    	def update
    		check_stop_state if @stop_state == 1
    		return if @stop_state == 2
    		@sprites.each do |index|
    			index.update
    		end
    	end
    	
    	def dispose
    		@sprites.each do |index|
    			index.dispose
    		end
    	end
    	
    end # class Game_Weather_Weather
    
    class Game_Weather_Sprite
    	
    	attr_reader :sprite
    	
    	def initialize(viewport, type, name)
    		@viewport = viewport
    		@type = type
    		@name = name
    		setup_sprite
    		setup_position
    		setup_variables
    		save_sprite_position
    	end
    	
    	def setup_sprite
    		@sprite = Sprite.new(@viewport)
    		@sprite.bitmap = Cache.weather(@name)
    	end
    	
    	def setup_position
    		@sprite_settings = Game_Weather_Functions.weather_type_settings(@type)
    		@sprite.x = @sprite_settings[0]
    		@sprite.y = @sprite_settings[1]
    		@sprite.opacity = @sprite_settings[2]
    		@sprite.angle = @sprite_settings[3]
    		@sprite.zoom_x = @sprite_settings[4]
    		@sprite.zoom_y = @sprite_settings[4]
    	end
    	
    	def setup_variables
    		@x_speed = @sprite_settings[5]
    		@y_speed = @sprite_settings[6]
    		@opacity_speed = @sprite_settings[7]
    		@angle_speed = @sprite_settings[8]
    	end
    	
    	def type=(type)
    		@type = type
    		@sprite_settings = Game_Weather_Functions.weather_type_settings(@type)
    		setup_variables
    	end
    	
    	def stop
    		@opacity_speed = -10
    	end
    	
    	def continue
    		setup_position
    		setup_variables
    	end
    	
    	# Проверка позиции спрайта
    	def check_position
    		setup_position if @sprite.x > Graphics.width * 1.5 || @sprite.x < - Graphics.width / 2 || @sprite.y > Graphics.height * 1.5 || @sprite.y < - Graphics.height / 2
    	end
    	
    	def refresh
    		setup_sprite
    		@sprite.x = @x_save
    		@sprite.y = @y_save
    		@sprite.opacity = @opacity_save
    		@sprite.angle = @angle_save
    		@sprite.zoom_x = @zoom_save
    		@sprite.zoom_y = @zoom_save
    	end
    	
    	def update
    		@sprite.x += @x_speed
    		@sprite.y += @y_speed
    		@sprite.opacity += @opacity_speed
    		@sprite.angle += @angle_speed
    		check_position
    	end
    	
    	def save_sprite_position
    		@x_save = @sprite.x
    		@y_save = @sprite.y
    		@opacity_save = @sprite.opacity
    		@angle_save = @sprite.angle
    		@zoom_save = @sprite.zoom_x
    	end
    	
    	def dispose
    		return if @sprite.nil?
    		save_sprite_position
    		@sprite.dispose
    		@sprite = nil
    	end
    	
    end # class Game_Weather_Sprite
    
    class Game_Interpreter
    	
    	def start_weather(type, power, name, stop_all = false)
    		return if $Game_Weather.nil?
    		$Game_Weather.start_weather(type, power, name, stop_all)
    	end
    	
    	def stop_weather(index = 0)
    		return if $Game_Weather.nil?
    		$Game_Weather.stop_weather(index)
    	end
    	
    	def stop_all_weather
    		return if $Game_Weather.nil?
    		$Game_Weather.stop_all_weather
    	end
    	
    	def pause_weather(index = 0)
    		return if $Game_Weather.nil?
    		$Game_Weather.pause_weather(index)
    	end
    	
    	def pause_all_weather
    		return if $Game_Weather.nil?
    		$Game_Weather.pause_all_weather
    	end
    	
    	def continue_weather(index = 0)
    		return if $Game_Weather.nil?
    		$Game_Weather.continue_weather(index)
    	end
    	
    	def continue_all_weather
    		return if $Game_Weather.nil?
    		$Game_Weather.continue_all_weather
    	end
    	
    	def weather_exist?(type, name)
    		return false if $Game_Weather.nil?
    		$Game_Weather.weather_exist?(type, name)
    	end
    	
    	def weather_amount
    		return -1 if $Game_Weather.nil?
    		return $Game_Weather.weather.size
    	end
    	
    	def toggle_weather_in_battle
    		$GAME_WEATHER_IN_BATTLE = !$GAME_WEATHER_IN_BATTLE
    	end
    	
    	def setup_weather_in_battle(setup)
    		$GAME_WEATHER_IN_BATTLE = setup
    	end
    	
    end # class Game_Interpreter
    
    class Spriteset_Map
    	
    	alias denis_kyznetsov_game_weather_spriteset_map_initialize initialize
    	def initialize
    		$Game_Weather.refresh if !$Game_Weather.nil?
    		denis_kyznetsov_game_weather_spriteset_map_initialize	
    	end
    	
    	alias denis_kyznetsov_game_weather_spriteset_map_dispose dispose
    	def dispose
    		$Game_Weather.dispose_sprites if !$Game_Weather.nil?
    		denis_kyznetsov_game_weather_spriteset_map_dispose
    	end
    	
    	alias denis_kyznetsov_game_weather_spriteset_map_update update
    	def update
    		$Game_Weather.update if !$Game_Weather.nil?
    		denis_kyznetsov_game_weather_spriteset_map_update
    	end
    	
    end # class Spriteset_Map
    
    class Spriteset_Battle
    	
    	alias denis_kyznetsov_game_weather_spriteset_battle_initialize initialize
    	def initialize
    		$Game_Weather.refresh if !$Game_Weather.nil? && $GAME_WEATHER_IN_BATTLE
    		denis_kyznetsov_game_weather_spriteset_battle_initialize
    		
    	end
    	
    	alias denis_kyznetsov_game_weather_spriteset_battle_dispose dispose
    	def dispose
    		$Game_Weather.dispose_sprites if !$Game_Weather.nil? && $GAME_WEATHER_IN_BATTLE
    		denis_kyznetsov_game_weather_spriteset_battle_dispose
    	end
    	
    	alias denis_kyznetsov_game_weather_spriteset_battle_update update
    	def update
    		$Game_Weather.update if !$Game_Weather.nil? && $GAME_WEATHER_IN_BATTLE
    		denis_kyznetsov_game_weather_spriteset_battle_update
    	end
    	
    end # class Spriteset_Battle
    
    module DataManager
    	
    	class << self
    		alias denis_kyznetsov_game_weather_data_manager_create_game_objects create_game_objects
    		alias denis_kyznetsov_game_weather_data_manager_make_save_contents make_save_contents
    		alias denis_kyznetsov_game_weather_data_manager_extract_save_contents extract_save_contents
    	end
    	
    	def self.create_game_objects
    		denis_kyznetsov_game_weather_data_manager_create_game_objects
    		$Game_Weather = Game_Weather.new
    	end
    	
    	def self.make_save_contents
    		contents = denis_kyznetsov_game_weather_data_manager_make_save_contents
    		contents[:Game_Weather_Content] = $Game_Weather.make_save_contents
    		contents[:GAME_WEATHER_LIMIT] = $GAME_WEATHER_LIMIT
    		contents[:GAME_WEATHER_POWER] = $GAME_WEATHER_POWER
    		contents[:GAME_WEATHER_IN_BATTLE] = $GAME_WEATHER_IN_BATTLE
    		contents
    	end
    	
    	def self.extract_save_contents(contents)
    		denis_kyznetsov_game_weather_data_manager_extract_save_contents(contents)
    		$Game_Weather.extract_save_contents(contents[:Game_Weather_Content])
    		$GAME_WEATHER_LIMIT = contents[:GAME_WEATHER_LIMIT]
    		$GAME_WEATHER_POWER = contents[:GAME_WEATHER_POWER]
    		$GAME_WEATHER_IN_BATTLE = contents[:GAME_WEATHER_IN_BATTLE]
    	end
    	
    end # module DataManager
    Последний раз редактировалось DK; 12.08.2015 в 00:44. Причина: обновление

  2. #2

    По умолчанию

    Что нового в версии 2.0:
    Переписал заново
    Исправлены ошибки
    К сожалению, вырезан звук
    Добавлена настройка изменения глубины Z

    В рамках программы по улучшению старых скриптов переписал половину скрипта заново. Само действие погоды не трогал, а только ее создание и управление. Звук вырезал, потому что сомневаюсь в его надобности.

  3. #3

    По умолчанию

    Что нового в версии 2.1:
    Добавлена возможность удалять всю погоду с карты (скрипт - dispose_all_weather)
    Добавлена настройка остановки погоды при переходе на другую карту

  4. #4

    По умолчанию

    Что нового в версии 2.2:
    Добавлена возможность всегда удалять погоду при переходе на другую карту (установите номер переключателя в 0)

  5. #5
    Хранитель Форума Аватар для Валера
    Информация о пользователе
    Регистрация
    15.04.2008
    Адрес
    Москва
    Сообщений
    14,006
    Записей в дневнике
    3
    Репутация: 166 Добавить или отнять репутацию

    По умолчанию

    Subzeroy, можно тебе посоветовать или предложить, это все равно.
    Чтобы сдвинуть с мертвой точки твое дело, тебе нужно сделать что-то серьезное, безусловно нужное, знаменитое ( в наших узких кругах ). Это породит настоящий интерес и заказы.
    Рано или поздно ты все равно придешь к тому, что надо сделать боевку. Такую, какую на мейкере сделать не так просто. Я бы предложил для начала сделать базу движения из боя Героев М&М 1-4.
    Если не играл ( в чем я сомневаюсь ): это пошаговый бой, юниты идут на длину ходки ( или меньше ) к выбранной цели. Или летят. Или стреляют.
    Нужно:
    1. Скрипт нахождения пути. Это имеется.
    2. Движение на заданное число клеток. Это просто.
    3. Выбывание юнитов и смена целей.
    Нужно: собрать это воедино и заставить ходить в зависимости от значение скорости.
    Никакой цифири, интерфейса и пр. не надо. Хотя наметить можно.
    Попробуй на досуге.

    Спойлер И как тебе не стыдно-то, а, Валера?:


    Оборона форта: http://rghost.ru/8kLGxFtD2
    Сделать, чтоб все происходило, как я хочу, - вот, собственно, и весь мейкер!
    Адский Рейд: http://rpgmaker.su/vbdownloads.php?d...downloadid=106

  6. #6
    Познающий Аватар для KARAKURT
    Информация о пользователе
    Регистрация
    11.05.2008
    Сообщений
    290
    Записей в дневнике
    5
    Репутация: 8 Добавить или отнять репутацию

    По умолчанию

    [RMXP] MrMo's ABS Ultimate или такую боевку. Её бы на RPGM VX ACE переписать.

  7. #7

    По умолчанию

    Новая версия. Обновил шапку темы.
    Что нового в версии 3.0:
    Скрипт переписан заново
    Изменены типы погоды
    Новые вызовы скриптов (вся инструкция в шапке скрипта)
    Оптимизация
    Исправление ошибок

  8. #8
    Авторитет Аватар для David Kristens
    Информация о пользователе
    Регистрация
    27.09.2010
    Адрес
    г.Хайдельберг (Германия)
    Сообщений
    1,711
    Записей в дневнике
    157
    Репутация: 66 Добавить или отнять репутацию

    По умолчанию

    На мейкере ХР был офигенный скрипт погоды от Сосоа, допиленный Адским Соседом. Вот там погодные эффекты были хороши. Советую, посмотри его.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Погода (Game Weather)