- Сообщений: 935
- Спасибо получено: 895
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
Как сделать наем юнитов?Vxace
7 года 6 мес. назад #107085
от VeselyRodger
Мои проекты:
rpgmakerunion.ru/user/veselyrodger
Мой канал на Ютубе:
youtube.com/channel/UCyttExMfXo8ke_PhQjNPyuw
VeselyRodger создал тему: Как сделать наем юнитов?Vxace
Можно ли сделать что б с какой то переодичностью создавалось событие, ну что б было что то типо как в стратегиях, наем новых юнитов?
Мои проекты:
rpgmakerunion.ru/user/veselyrodger
Мой канал на Ютубе:
youtube.com/channel/UCyttExMfXo8ke_PhQjNPyuw
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 6 мес. назад - 7 года 6 мес. назад #107089
от Dmy
Dmy ответил в теме Как сделать наем юнитов?Vxace
Можно подробнее? О чём вопрос: о периодичности или о найме юнитов? Юниты — это герои в партии, или это вообще что-то, что нужно добавить?
Если о периодичности, то в стратегиях обычно привязка идёт к игровому времени. Скажем, в «Героях Меча и Магии» есть конец хода: сколько раз на неё нажал, столько дней и прошло. В мейкере нужно привязать это к каким-то другим вещам. Например, сравнительно просто привязать событие к таким вещам:
Количество шагов, секунд и битв можно сохранить в переменную:
Количество отдыхов в гостинице легко посчитать самому: просто создать переменную и увеличивать её каждый раз, когда герои останавливаются в гостинице.
Потом можно сделать параллельное общее событие, которое проверяет: если количество шагов/секунда/битв/отдыхов стало больше какого-то значения, то доступные для найма герои меняются. Вот пример, как это можно сделать:
В моём примере код событие будет вызываться каждые 100 шагов. (Настоящего кода там нет, вместо комментария надо поставить код замены героев).
Я поставил «Ждать: 55 кадров», чтобы быть уверенным, что событие не замедляет игру. Игрок вряд ли заметит разницу, если герои обновятся на секунду позже, а мы можем быть уверенными, что событие не будет тормозить игру.
Если о периодичности, то в стратегиях обычно привязка идёт к игровому времени. Скажем, в «Героях Меча и Магии» есть конец хода: сколько раз на неё нажал, столько дней и прошло. В мейкере нужно привязать это к каким-то другим вещам. Например, сравнительно просто привязать событие к таким вещам:
- к количеству пройденных шагов,
- к пройденному количеству (реальных) секунд,
- к количеству битв,
- к количеству отдыхов в гостинице.
Количество шагов, секунд и битв можно сохранить в переменную:
Количество отдыхов в гостинице легко посчитать самому: просто создать переменную и увеличивать её каждый раз, когда герои останавливаются в гостинице.
Потом можно сделать параллельное общее событие, которое проверяет: если количество шагов/секунда/битв/отдыхов стало больше какого-то значения, то доступные для найма герои меняются. Вот пример, как это можно сделать:
В моём примере код событие будет вызываться каждые 100 шагов. (Настоящего кода там нет, вместо комментария надо поставить код замены героев).
Я поставил «Ждать: 55 кадров», чтобы быть уверенным, что событие не замедляет игру. Игрок вряд ли заметит разницу, если герои обновятся на секунду позже, а мы можем быть уверенными, что событие не будет тормозить игру.
Последнее редактирование: 7 года 6 мес. назад пользователем Dmy.
Спасибо сказали: Cabbit, VeselyRodger
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 6 мес. назад #107090
от Lipton
Lipton ответил в теме Как сделать наем юнитов?Vxace
Все возможно при большом желании. 
Можно например покурить старую тему Эльфа в которой он переводил скрипт позволяющий в свою очередь с помощью скрипта создавать события.
Создание событий скриптами
Или порыться и поискать например вот эту тему где писали скрипт позволяющий создавать копии события с одной карты на другую.
Copy Events
Или такой вариант копирования ивента с карты на карту который я как-то использовал и он вполне рабочий.
вызывается из выполнить скрипт по моему такой командой
$game_map.add_event(mapid, eventid, x, y)
где
mapid - номер с карты с которой будет браться ивент
eventid - номер ивента который будет копироваться
x,y - координаты на текущей карте куда встанет ивент

Можно например покурить старую тему Эльфа в которой он переводил скрипт позволяющий в свою очередь с помощью скрипта создавать события.
Создание событий скриптами
Или порыться и поискать например вот эту тему где писали скрипт позволяющий создавать копии события с одной карты на другую.
Copy Events
Или такой вариант копирования ивента с карты на карту который я как-то использовал и он вполне рабочий.
ВНИМАНИЕ: Спойлер!
Code:
#~ Author: estriole
#~ since dealing with hash is difficult i store the flatten of the hash (array)
#~ and process it from there.
#~ hope this help.
#~ edit : update the script above. now it will generate the id that not used
#~ between 1 to max id. (between id)
#~ example you have event with id 2,5,6,8,10. this will generate event id 1.
#~ then if making event again will generate event id 3.
#~ this to avoid the number become to great (imagine you create event 1,2,3,4,5
#~ then remove 3. when you create again it will generate 6 instead of 3 in previous
#~ method)
#~ i also made method to delete the event.
#~ use it using script call
#~ $game_map.delete_event(idoftheevent)
#~ and delete batch event
#~ use it using script call
#~ $game_map.delete_batch_event([1,3,5,7]) #must be array
#~ or
#~ $game_map.delete_batch_event([1..100]) #must be array
#~ hope this help
class Game_Map
#--------------------------------------------------------------------------
# ● Adds an event from another map to the current map
#--------------------------------------------------------------------------
def add_event(mapid, eventid, x, y)
map = load_data(sprintf("Data/Map%03d.rvdata2", mapid))
e = Game_Event.new(@map_id, map.events[eventid])
e.moveto(x,y)
next_id= @events.flatten #flat the hash to array and store it at next_id
idlist= [] #init new array to store only the numbers not game_event object
for i in 0..next_id.size-1
idlist.push(next_id[i]) if i %2 == 0 #next_id format =[number,gameevent,number,gameevent]
#so we take only index 0,2,4,6,...
end
betweenid = (1..idlist.max).to_a - idlist
#this store the blank between min and max [1,3,4,6] means this = [2,5]
if betweenid.size >0
next_id = betweenid[0] #use the first between id if exist
else #if between not exist
next_id = idlist.max + 1 #get the maximum id and increment it by 1
end
e.event.id = next_id #assign it to the event and done
@events[e.id] = e
# SceneManager.scene.refresh_characters
return e.id
end
def delete_event(id)
@events.delete(id)
SceneManager.scene.refresh_characters
end
def delete_batch_event(range)
delete_list = range.to_a
for i in 0..delete_list.size
@events.delete(delete_list[i]) rescue nil
end
SceneManager.scene.refresh_characters
end
end
class Game_Event < Game_Character
attr_accessor:event
def id
return @event.id
end
end
class Scene_Map < Scene_Base
def refresh_characters
@spriteset.refresh_characters
end
end
вызывается из выполнить скрипт по моему такой командой
$game_map.add_event(mapid, eventid, x, y)
где
mapid - номер с карты с которой будет браться ивент
eventid - номер ивента который будет копироваться
x,y - координаты на текущей карте куда встанет ивент
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
7 года 6 мес. назад - 7 года 6 мес. назад #107092
от VeselyRodger
Мои проекты:
rpgmakerunion.ru/user/veselyrodger
Мой канал на Ютубе:
youtube.com/channel/UCyttExMfXo8ke_PhQjNPyuw
VeselyRodger ответил в теме Как сделать наем юнитов?Vxace
Dmy, интересовал именно как сделать, чтоб в процессе игры создавались события которых нет на карте.
Мои проекты:
rpgmakerunion.ru/user/veselyrodger
Мой канал на Ютубе:
youtube.com/channel/UCyttExMfXo8ke_PhQjNPyuw
Последнее редактирование: 7 года 6 мес. назад пользователем VeselyRodger.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.092 секунд
