XP 스크립트

http://www.dubealex.com/asylum/index.php?showtopic=11253
문자 치환(환자법이었던가? 가장 기초적인 암호화 방법인데)을 이용해서 대사창에 다른 언어를 표시하는 스크립트입니다. (FF10/10-2의 알베드어 생각하면 됨) 근데 알파벳만 될 겁니다.(한글에 적용시키고 싶다면.... 알아서 연구해 보시길)






[일반 시스템] Multiple Languages v2 by SephirothSpawn (SDK호환)
글쓴이 : Y.W. Ahn 날짜 : 06-09-01 08:05 조회 : 157
http://www.dubealex.com/asylum/index.php?showtopic=11253
문자 치환(환자법이었던가? 가장 기초적인 암호화 방법인데)을 이용해서 대사창에 다른 언어를 표시하는 스크립트입니다. (FF10/10-2의 알베드어 생각하면 됨) 근데 알파벳만 될 겁니다.(한글에 적용시키고 싶다면.... 알아서 연구해 보시길)






#==============================================================================
# ** Multiple Languages
#------------------------------------------------------------------------------
# SephirothSpawn
# Version 2
# 2006-08-27
#------------------------------------------------------------------------------
# * Descript-xion :
#
# ~ This script-x was designed to let you simulate multiple languages through
# letter transfers. It allows you to transfer one letter to another, until
# you learn the letter (One Letter = Another Letter). You can set up
# multiple languages and control color of known and unknown letters for
# each language.
#------------------------------------------------------------------------------
# * Instructions :
#
# ~ Place Script-x Below the SDK and Above Main
#
# ~ Turning on Different Language (Use Before the Text/Message Command):
# $game_languages.language_id = language_id
#
# ~ Turning off multiple langauges (Use After the Text/Message Command):
# $game_languages.language_id = nil
#
# ~ To Learn a letter, use:
# $game_languages.learn_letter(language_id, 'letter')
#
# NOTE: Due to the complexity of message systems, you cannot use special
# commands such as the show gold window when displaying an alternate language.
#------------------------------------------------------------------------------
# * Setting Up A Language
#
# ~ Setting Color for Known and Unknown letters
# Known_Letter_Color = {language_id => text_color, ...}
# Unknown_Letter_Color = {language_id => text_color, ...}
#
# ~ Setting Up Language Table
# Languages = {language_id => , ...}
#
# ~ is a hash of all letters and symbols that will transfer
# to something else. The keys are what the letter is, and the values are
# how the letters will appear until translated.
#
# Example:
# {'a' => 'j', 'b' => 'k', 'c' => 'l', 'd' => 'm', 'e' => 'n'}
#
# CbaEBac -> LkjNKjl
#------------------------------------------------------------------------------
# * Thanks To Makeamidget For helping me with previous versions
#==============================================================================

#------------------------------------------------------------------------------
# * SDK Log Script-x
#------------------------------------------------------------------------------
SDK.log('Multiple Languages', 'SephirothSpawn', 2, '2006-08-28')

#------------------------------------------------------------------------------
# * Begin SDK Enable Test
#------------------------------------------------------------------------------
if SDK.state('Multiple Languages')

#==============================================================================
# ** Game_Languages
#==============================================================================

class Game_Languages
#--------------------------------------------------------------------------
# * Letter Colors
#
# ~ language_id => text_colors
#
# The Text Colors are the colors you would use when you use c[n].
# By Default, these are the colors:
#
# 0 : White 1 : Dark Blue
# 2 : Red 3 : Green
# 4 : Light Blue 5 : Purple
# 6 : Yellow 7 : Gray
#--------------------------------------------------------------------------
Known_Letter_Color = {
1 => 0
}
Unknown_Letter_Color = {
1 => 6
}
#--------------------------------------------------------------------------
# * Languages
#
# ~ language_id => {a => 'f', 'b' => 'c', ...}
#
# * Template For Letters
# = {'a' => '', 'b' => '', 'c' => '', 'd' => '', 'e' => '',
# 'f' => '', 'g' => '', 'h' => '', 'i' => '', 'j' => '',
# 'k' => '', 'l' => '', 'm' => '', 'n' => '', 'o' => '',
# 'p' => '', 'q' => '', 'r' => '', 's' => '', 't' => '',
# 'u' => '', 'v' => '', 'w' => '', 'x' => '', 'y' => '',
# 'z' => ''}
#--------------------------------------------------------------------------
Languages = {
1 => {'a' => 'y', 'b' => 'p', 'c' => 'l', 'd' => 't', 'e' => 'a',
'f' => 'v', 'g' => 'k', 'h' => 'r', 'i' => 'e', 'j' => 'z',
'k' => 'g', 'l' => 'm', 'm' => 's', 'n' => 'h', 'o' => 'u',
'p' => 'b', 'q' => 'x', 'r' => 'n', 's' => 'c', 't' => 'd',
'u' => 'i', 'v' => 'v', 'w' => 'f', 'x' => 'q', 'y' => 'o',
'z' => 'w'
}
}
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :language_id
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@language_id = nil
@known_letters = {}
end
#--------------------------------------------------------------------------
# * Learn Letter
#--------------------------------------------------------------------------
def learn_letter(language_id, letter)
unless @known_letters.has_key?(language_id)
@known_letters[language_id] = []
end
unless @known_letters[language_id].include?(letter.downcase)
@known_letters[language_id] << letter.downcase
end
end
#--------------------------------------------------------------------------
# * Change To Language
#--------------------------------------------------------------------------
def change_to_language
return_text = ''
text = $game_temp.message_text
last_color = 0
begin
while ((c = text.slice!(/./m)) != nil)
if @known_letters.has_key?(@language_id)
if @known_letters[@language_id].include?(c.downcase)
next_color = Known_Letter_Color[@language_id]
unless next_color == last_color
last_color = next_color
return_text += 'c' + "[#{next_color}]"
end
return_text += c
next
end
end
if Languages[@language_id].include?(c.downcase)
if c.upcase == c
c = Languages[@language_id][c.downcase].upcase
else
c = Languages[@language_id][c]
end
end
next_color = Unknown_Letter_Color[@language_id]
unless next_color == last_color
last_color = next_color
return_text += 'c' + "[#{next_color}]"
end
return_text += c
end
end
$game_temp.message_text = return_text
end
end

#==============================================================================
# ** Window_Message
#==============================================================================

class Window_Message
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_gmlngs_wdmsg_refresh refresh
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
# If Alternate Languages Isn't Nil
unless $game_languages.language_id.nil?
$game_languages.change_to_language
end
# Original Method Refresh
seph_gmlngs_wdmsg_refresh
end
end

#==============================================================================
# ** Scene_Title
#==============================================================================

class Scene_Title
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_gmlngs_scnttl_cng command_new_game
#--------------------------------------------------------------------------
# * Command : New Game
#--------------------------------------------------------------------------
def command_new_game
# Original Command New Game
seph_gmlngs_scnttl_cng
# Creates Game Languages Game Data
$game_languages = Game_Languages.new
end
end

#==============================================================================
# ** Scene_Save
#==============================================================================

class Scene_Save
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_gmlngs_scnsave_wd write_data
#--------------------------------------------------------------------------
# * Command : New Game
#--------------------------------------------------------------------------
def write_data(file)
# Original Write Data
seph_gmlngs_scnsave_wd(file)
# Saves Game Languages Data
Marshal.dump($game_languages, file)
end
end

#==============================================================================
# ** Scene_Load
#==============================================================================

class Scene_Load
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_gmlngs_scnload_rd read_data
#--------------------------------------------------------------------------
# * Command : New Game
#--------------------------------------------------------------------------
def read_data(file)
# Original Write Data
seph_gmlngs_scnload_rd(file)
# Saves Game Languages Data
$game_languages = Marshal.load(file)
end
end

#--------------------------------------------------------------------------
# * End SDK Enable Test
#--------------------------------------------------------------------------
end


다른 언어를 표시하고 싶을 때(메세지 표시하기 전에 넣을 것):
$game_languages.language_id = language_id
다른 언어 표시 off(메세지 표시 후에 넣을 것)
$game_languages.language_id = nil
다른 언어를 배울 때(FF10/10-2에서 알베드어 사전 입수해서 하듯이):
$game_languages.learn_letter(language_id, '문자')

원래의 알파벳과 치환할 문자는 스크립트 내의 Languages = {....} 에서 정의할 수 있습니다.

**이 스크립트로 다른 언어를 표시할 때는 돈 액수창 표시와 같은 몇몇 문자표시 명령을 사용할 수 없습니다.

Who's 백호

?

이상혁입니다.

http://elab.kr

Atachment
첨부 '3'

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6313
721 기타 레벨9999만들기스크립 23 해파리 2009.04.10 3348
720 퀘스트 퀘스트창 예제 21 지나가던사람 2009.04.05 5746
719 메뉴 [자작]명성치 사용 스크립트 16 Rainsy 2009.03.22 3392
718 이동 및 탈것 반칸 이동하기 14 file 느싱 2009.03.09 3463
717 맵/타일 [유니크급] RPG XP 게임을 3D화로 보자! Neo Mode7 script / 52 file 쉴더 2009.02.28 9452
716 기타 8방향 마우스 스크립트 10 file 아방스 2009.02.28 4063
715 기타 4방향 마우스 스크립트 12 file 아방스 2009.02.28 2667
714 액터 (killer님 요청)자동회복 스크립트 3 나뚜루 2009.02.22 2576
713 기타 멤버 교체 11 file 백호 2009.02.22 2532
712 메뉴 메뉴등에서 움직이는 엑터 9 file 백호 2009.02.22 3166
711 파티 파티 확장 11 file 백호 2009.02.22 3191
710 스킬 제한시간내 커맨드를 입력해야 스킬이 발동~ 3 file 백호 2009.02.22 2616
709 기타 회복으로 데미지를 받는 좀비 스크립트 7 백호 2009.02.22 2010
708 기타 플레이어 발소리 스크립트 20 백호 2009.02.22 3111
707 아이템 CSSR14-아이템 합성 3 file 백호 2009.02.22 2835
706 장비 CSSR8-장비품 생산&강화 시스템 18 file 백호 2009.02.22 3960
705 장비 CSSR5-장비품 중량 시스템 1 file 백호 2009.02.22 1736
704 장비 CSSR1-장비품 어빌리티포인트제 file 백호 2009.02.22 1600
703 전투 CSSR6-스태미너 시스템 1 file 백호 2009.02.22 2340
» 기타 Multiple Languages v2 by SephirothSpawn (SDK호환) file 백호 2009.02.22 1408
Board Pagination Prev 1 ... 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ... 52 Next
/ 52