안녕하세요 백안시님, 자세하고 친절한 설명 덕분에 렌파이로 재미있게 게임 제작중이에요 ^^
한국어 조사 자동으로 바꾸는 스크립트를 올려주셨는데, 그대로 복붙하니까 자꾸 에러가 뜨더라구요..
무엇이 문제인지 잘 모르겠어서, 계속 들여다보고는 있는데 아무래도 여쭙는게 더 빠를것같아서요ㅠㅠㅋㅋㅋ
우선 제가 다 []으로 이름치환 사용중이어서 %()s 부분은 지웠어요.
그리고 finalChecker이 문제인가 싶어 그냥 첫부분에 return True 넣어봤는데 그렇게 해두 안돼어서..
아 참고로
ppp_list = [('가', '이'), ('는', '은'),('를', '을'), ('와', '과')]
이부분이 올려주셨던 스크립트 (http://askance.tistory.com/230, line 38) 에는
pppList로 돼있는데, pppChanger에서는 ppp_list 를 사용하길래..
pppList 를 ppp_list로 바꾸었구요.
우선 코드 올려보겠습니다.. ㅠㅠ
좋은 블로그 운영해주셔서 감사합니다!
init python: finalConso = None name = '' #받침유무판별기 def finalChecker(name): import re name = name expr = re.compile(r'([a-zA-Z0-9\s~!@#$%^&*()_+|}{:"<>?`\-=\\\[\];\',./])') temp = expr.sub('', name) if temp == '': return False last_alphabet = repr(temp[-1]) dec = int(str(last_alphabet[4:-1]), 16) while dec < 0x3164: temp = temp[:-1] if not temp: return False last_alphabet=repr(temp[-1]) dec = int(str(last_alphabet[4:-1]), 16) dec= (dec-44032) % 588 % 28 if dec == 0: return False else: return True ppp_list = [('가', '이'), ('는', '은'),('를', '을'), ('와', '과')] #조사 바꾸기 def pppChanger(input): import re if finalConso: #[]로 이름치환 사용시 input = re.sub('\[name\]야', name + '아', input) input = re.sub('\[name\]', name + '이', input) for p, pc in ppp_list: input = re.sub('\[name\]'+ p, "[name]" + pc, input) return input config.say_menu_text_filter(pppChanger)#올려주신대로 해도 안되길래 한번 바꾸어봤어요! 여전히 안되고 있습니다^_ㅜ ##############################사용한곳 label start: $ p_name = renpy.input("당신의 이름은?") $ p_name = p_name.strip() if p_name == "": $p_name = "Player" $finalConso = finalChecker (p_name) "[p_name]야, [p_name]는, [p_name]를, [p_name]와, [p_name]가"
2016.08.30 21:27
2016.08.31 03:25
아ㅏ 그렇게하는거군요 ㅋㅋㅋㅋㅋ 너무 감사합니다!
이름 두개를 받고있는데 그러면 저 코드 자체를 두번 써야 하는건가요?
2016.08.31 03:37
아 혹시 이거 say menu text filter 자체가 제일 후자에 입력한 스크립트만 적용이 되는건가요..? 코드 두번 써서 해보았는데 계속 안되어서.. ㅠㅠ 아니면 name 값을 say 전에 계속 바꾸는 수 밖에 없을까요?
2016.08.31 19:54
if finalConso 안에 있는 걸 한 번 더 복붙하고 p_name 을 수정하면 될 거 같네요
안녕하세요~
1. 우선 제가 올린 스크립트는 말씀 주신 대로 오타가 있어서; 수정을 했고 지금은 잘 돌아가고 있습니다
2. 지금 플레이어 이름을 p_name 으로 하고 계신데 변수를 name으로 바꾸시거나 아니면 pppchanger에서 name을 p_name으로 바꾸시면 될 겁니다
그리고
config.say_menu_text_filter(pppChanger)
를config.say_menu_text_filter = pppChanger 로 바꿔보세요