- Сообщений: 3147
- Спасибо получено: 2651
Генератор имен (XP, VX, VX Ace)
13 года 1 день назад - 13 года 1 день назад #60227
от DeadElf79
DeadElf79 создал тему: Генератор имен (XP, VX, VX Ace)
Генератор имен
Этот скрипт я писал для RPG Maker XP, но он пойдет и на VX/VX Ace (проверено
).
Использовал для генерации всего 21 букву из русского алфавита, потому что иначе имена получаются уж очень тяжело читаемыми. Убрал появление двух согласных подряд, однако с гласными это почему-то не работает и их может появится подряд не более трёх. Ладно, подожду появления Пещерного, надеюсь, он посмотрит, в чем дело и найдет ошибку.
Скачать файл со скриптом и инструкциями из этой статьи можно здесь: ссылка или зеркало .
Не могу привести код прямо здесь из-за особенностей восприятия движком сайта некоторых частей.
Пример использования показан на скриншоте:
Чтобы переименовать своих персонажей с помощью события(ивента), вызываем в нем скрипт, в котором пишем:
Для задания случайных имени и фамилии персонажа можно написать их через пробел.
Если длина имени и фамилии одинаковы, пишем так:
Если длина имени и фамилии различаются, пишем так:
Примечание:
- Если после использования второго примера в XP вылетает ошибка, то лучше этот пример не использовать. В моей сборке до нынешних пор была такая, пришлось лезть и менять размер окошка, который добрый сборщик зачем-то уменьшил.
- К сожалению, провернуть подобное с именами NPC, которые при этом не будут менятся каждый раз, как вы к нему обратитесь, требует времени и терпения. Но если это кому-то понадобиться - я расскажу, как это сделать.
Смотри также
Урок по созданию бесконечного пространства
Этот скрипт я писал для RPG Maker XP, но он пойдет и на VX/VX Ace (проверено
Использовал для генерации всего 21 букву из русского алфавита, потому что иначе имена получаются уж очень тяжело читаемыми. Убрал появление двух согласных подряд, однако с гласными это почему-то не работает и их может появится подряд не более трёх. Ладно, подожду появления Пещерного, надеюсь, он посмотрит, в чем дело и найдет ошибку.
Скачать файл со скриптом и инструкциями из этой статьи можно здесь: ссылка или зеркало .
Не могу привести код прямо здесь из-за особенностей восприятия движком сайта некоторых частей.
Пример использования показан на скриншоте:
Чтобы переименовать своих персонажей с помощью события(ивента), вызываем в нем скрипт, в котором пишем:
Code:
value=Name_Gen.new( длина имени )
$game_actors[ номер персонажа в базе данных ].name=value.rand_gen
Для задания случайных имени и фамилии персонажа можно написать их через пробел.
Если длина имени и фамилии одинаковы, пишем так:
Code:
value=Name_Gen.new( длина имени )
$game_actors[ номер персонажа в базе данных ].name=value.rand_gen+value.rand_gen
Если длина имени и фамилии различаются, пишем так:
Code:
value1=Name_Gen.new( длина имени )
value2=Name_Gen.new( длина фамилии )
$game_actors[ номер персонажа в базе данных ].name=value1.rand_gen+" "+value2.rand_gen
Примечание:
- Если после использования второго примера в XP вылетает ошибка, то лучше этот пример не использовать. В моей сборке до нынешних пор была такая, пришлось лезть и менять размер окошка, который добрый сборщик зачем-то уменьшил.
- К сожалению, провернуть подобное с именами NPC, которые при этом не будут менятся каждый раз, как вы к нему обратитесь, требует времени и терпения. Но если это кому-то понадобиться - я расскажу, как это сделать.
Смотри также
Урок по созданию бесконечного пространства
Последнее редактирование: 13 года 1 день назад пользователем DeadElf79.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
13 года 1 день назад #60240
от caveman
caveman ответил в теме Генератор имен (XP, VX, VX Ace)
Вот этот вариант не выдает нескольких заглавных в слове и две гласные подряд. Наменял много, но, по ходу, проблема была в том, что ты менял символы в своем @alphabet на ходу на заглавные, так как усе там ссылочно с этими строками. Та же фигня с присвоением last_sym (особенно порадовало это дело после того, как sym апперкейзился).
В общем, понаставил клонов - стало работать и даже иногда выдавать удобоваримые имена.
В общем, понаставил клонов - стало работать и даже иногда выдавать удобоваримые имена.
ВНИМАНИЕ: Спойлер!
Code:
class Game_Temp
attr_accessor :gen_name
end
#-------------------------------------------------------------------------------
# ГЕНЕРАТОР ИМЕН
#-------------------------------------------------------------------------------
#Используемые буквы:
# а б в г д е ж з и к л м н о п р с т у ш э (21 буква)
class Name_Gen
def initialize(size=3)
if size<3 then
@size=3
else
@size=size
end
@alphabet=['а','б','в','г','д','е','ж','з','и','к','м',
'н','о','п','р','с','т','у','ш','э']
@glas=['а','е','и','о','у','э']
end
def rand_gen
string=""
sym=''
last_sym=''
for i in 1..@size
#Сделаем цикл с проверками
loop do
#Выдадим рандомный символ
ret=rand(@alphabet.size-1)
sym=@alphabet[ret].clone
#Проверим повторение букв
if i>1
if last_sym==sym
next
end
#Проверим повторение гласных
if @glas.include?(last_sym) && @glas.include?(sym)
next
#Проверим на появление второй согласной
elsif !@glas.include?(last_sym) && !@glas.include?(sym)
next
else
break
end
else
break
end
end
#Проверим заглавную букву
last_sym=sym.clone
if i==1
sym.upcaser
end
string+=sym.clone
end
return string
end
end
#Дополнительные скрипты, нужные для работы:
#-------------------------------------------------------------------------------
# STRING
#-------------------------------------------------------------------------------
class String
def upcaser
if self[/[а]/]
self[/[а]/]="А"
end
if self[/[б]/]
self[/[б]/]="Б"
end
if self[/[в]/]
self[/[в]/]="В"
end
if self[/[г]/]
self[/[г]/]="Г"
end
if self[/[д]/]
self[/[д]/]="Д"
end
if self[/[е]/]
self[/[е]/]="Е"
end
if self[/[ё]/]
self[/[ё]/]="Ё"
end
if self[/[ж]/]
self[/[ж]/]="Ж"
end
if self[/[з]/]
self[/[з]/]="З"
end
if self[/[и]/]
self[/[и]/]="И"
end
if self[/[й]/]
self[/[й]/]="Й"
end
if self[/[к]/]
self[/[к]/]="К"
end
if self[/[л]/]
self[/[л]/]="Л"
end
if self[/[м]/]
self[/[м]/]="М"
end
if self[/[н]/]
self[/[н]/]="Н"
end
if self[/[о]/]
self[/[о]/]="О"
end
if self[/[п]/]
self[/[п]/]="П"
end
if self[/[р]/]
self[/[р]/]="Р"
end
if self[/[с]/]
self[/[с]/]="С"
end
if self[/[т]/]
self[/[т]/]="Т"
end
if self[/[у]/]
self[/[у]/]="У"
end
if self[/[ф]/]
self[/[ф]/]="Ф"
end
if self[/[х]/]
self[/[х]/]="Х"
end
if self[/[ц]/]
self[/[ц]/]="Ц"
end
if self[/[ч]/]
self[/[ч]/]="Ч"
end
if self[/[ш]/]
self[/[ш]/]="Ш"
end
if self[/[щ]/]
self[/[щ]/]="Щ"
end
if self[/[э]/]
self[/[э]/]="Э"
end
if self[/[ю]/]
self[/[ю]/]="Ю"
end
if self[/[я]/]
self[/[я]/]="Я"
end
end
end
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
12 года 11 мес. назад #60720
от Cerberus
Жуть болотная, на лапках, в тапках и с пулемётом...
Cerberus ответил в теме Генератор имен (XP, VX, VX Ace)
Ссылка на rghost не работает (дропбокс - работает). И - странно, конечно, что никто не заметил, но генератор всё-таки скриптовый, а не эвентовый, так что перенёс
Жуть болотная, на лапках, в тапках и с пулемётом...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
12 года 11 мес. назад #60724
от DeadElf79
DeadElf79 ответил в теме Генератор имен (XP, VX, VX Ace)
ргхост сдулся, похоже. попробую залить на другой хост)
стоп, а где раньше лежала тема? я ее в скрипты ж клал вроде
стоп, а где раньше лежала тема? я ее в скрипты ж клал вроде
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
12 года 11 мес. назад #60729
от Cerberus
Жуть болотная, на лапках, в тапках и с пулемётом...
Cerberus ответил в теме Генератор имен (XP, VX, VX Ace)
Лежала в Факультете эвентов. Ошибиться не мог - увидел, когда искал чисто эвентовую боевую систему.
Жуть болотная, на лапках, в тапках и с пулемётом...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.093 секунд
