More actions
imported>zeldababo No edit summary |
imported>zeldababo No edit summary |
||
| Line 30: | Line 30: | ||
설치된경로를 따라 Eclipse의 Profiler말고 Interpreter로 lua.exe로 path를 설정해주면 Eclipse에서 Project를 만든뒤 출력되는 Lua파일을 볼수 있다. | 설치된경로를 따라 Eclipse의 Profiler말고 Interpreter로 lua.exe로 path를 설정해주면 Eclipse에서 Project를 만든뒤 출력되는 Lua파일을 볼수 있다. | ||
# 초성 뽑기 연습 in 자바 | |||
WOW애드온 초성퀴즈를 만들기위함이기 때문에. | WOW애드온 초성퀴즈를 만들기위함이기 때문에. | ||
| Line 91: | Line 92: | ||
이렇게 하고 문자 규칙에 따라 빼온다. | 이렇게 하고 문자 규칙에 따라 빼온다. | ||
규칙은 위의 코드를 보면 알수 있다. | 규칙은 위의 코드를 보면 알수 있다. | ||
# 첫 와우 AddOn Hello WOW! | |||
첫 와우 Addon을 제작하게 되었다. | |||
이름하야 Hello WoW!! | |||
천리길도 Hello World!부터라는 지론에 따라 | |||
어떻게 연동되는지를 살펴보겠다. | |||
기본 프로그램 정보를 담고있는 *.toc파일. | |||
그리고 UI와 LUA를 Mapping 시켜주는 *.xml | |||
그리고 연산을 해주는 *.lua | |||
작성을 해보자 | |||
기본적으로 "/World of Warcraft/interface/addons/애드온명" 으로 폴더가 만들어져있어야한다. | |||
그리고 HelloWoW.toc으로 기본설정을 잡아야하고 | |||
toc에 정보를 넣어주어야한다. | |||
HelloWoW.toc | |||
---------------------------- | |||
##Interface:40200 | |||
##Title:HelloWOW | |||
##Notes:Example | |||
HelloWoW.xml | |||
HelloWoW.lua | |||
--------------------------- | |||
Interface에는 현재 버전 정보가 들어가있다. | |||
http://www.wowwiki.com/Getting_the_current_interface_number | |||
로 현재 인터페이스 정보를 알아볼수 있다. | |||
내가 작성하는건 4.2니까 40200이겠지 인터페이스 정보를 갱신안해놓으면 와우 애드온 로드시 '구버전'으로 제대로 로드가 안될 수 있다. | |||
Title은 짐작대로고 | |||
노트는 그냥 설명이고 | |||
Author도 있음. | |||
HelloWoW.xml | |||
---------------------------------------- | |||
<UI xmlns="http://www.blizzard.com/wow/ui" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui"> | |||
<script file="HelloWoW.lua"/> | |||
<Frame name="HelloWoWFrame"> | |||
<Scripts> | |||
<OnLoad> | |||
HelloWoW_ShowMessage(); | |||
</OnLoad> | |||
</Scripts> | |||
</Frame> | |||
</UI> | |||
--------------------------------- | |||
HelloWoW.lua | |||
--------------------------------- | |||
function HelloWoW_ShowMessage() | |||
message("Hello WOW!"); | |||
end | |||
--------------------------------- | |||
WoW API function을 lua에 넣어준적은 없지만 자동으로 되나보다. | |||
신기한데? | |||
이렇게 작성하면 Hello WOW!가 뜬다. | |||
Revision as of 12:23, 6 July 2011
목적
진행
- Lua 설치 및 셋팅
WOW의 애드온은 Lua나 Ruby와 같은 스크립트 언어를 사용하는것으로 알고있다.
그래서 Programming in Lua라는 책을 도서관에서 빌려왔다. 아마 빌려온지 1주일은 됬겠지.
Lua 개발환경을 셋팅하는데 좀 걸렸다.
Lua-Eclipse를 받아서 깔고. (LunarEclipse라는 것도 있단다)
http://luaeclipse.luaforge.net/
Eclipse에서 Java외의 다른것을 돌리려면 당연 인터프리터나 컴파일러를 설치해주어야 한다. 그래서 Lua를 설치하려했다. LuaProfiler나 LuaInterpreter를 설치해야한다는데 도통 영어를 못읽겠다 나의 무식함이 들어났다.
여튼 어찌어찌해서
http://luaforge.net 에서 루아 Windows 인스톨러를 받아서 설치하게됬다.
5.1.4-35 2010-04-07 13:09 LuaForWindows_v5.1.4-35.exe
얏호. 설치.
설치된경로를 따라 Eclipse의 Profiler말고 Interpreter로 lua.exe로 path를 설정해주면 Eclipse에서 Project를 만든뒤 출력되는 Lua파일을 볼수 있다.
- 초성 뽑기 연습 in 자바
WOW애드온 초성퀴즈를 만들기위함이기 때문에.
당연히 한글의 초성을 빼올수 있어야한다.
그래서 찾아봤더니 UTF-8방식으로 빼올수 있다고 한다.
근데 이상한데 UNICODE에서 계산해서 빼오더구만. 추가 : 알고보니 UNICODE를 포함하는 방식중 하나라고한다. 근데 더 모르겠는데... U-00000800 - U-0000FFFF 범위에 들어간다고 하는데?? 아악 모르겠어!! 그래서 추가로 링크를 걸어본다.
http://blog.naver.com/declspec?Redirect=Log&logNo=10092640244 http://divestudy.tistory.com/8 링크가 안없어지길.
우선 자바 코드는 다음과 같다.
~java
package utfencoding;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class UtfEncoding {
final static char[] first = {
'ㄱ','ㄲ','ㄴ','ㄷ','ㄸ','ㄹ','ㅁ','ㅂ','ㅃ','ㅅ','ㅆ','o','ㅈ','ㅉ','ㅊ','ㅋ','ㅌ','ㅍ','ㅎ'
};
final static char[] middle = {
'ㅏ','ㅐ','ㅑ','ㅒ','ㅓ','ㅔ','ㅕ','ㅖ','ㅗ','ㅠ','ㅘ','ㅛ','ㅙ','ㅚ','ㅜ','ㅝ','ㅞ','ㅟ','ㅡ','ㅢ','ㅣ'
};
final static char[] last = {
'\0','ㄱ','ㄲ','ㄳ','ㄴ','ㄵ','ㄶ','ㄷ','ㄹ','ㄺ','ㄻ','ㄽ','ㄾ','ㄿ','ㅀ','ㅁ','ㅂ','ㅄ','ㅅ','ㅆ','o','ㅈ','ㅊ','ㅋ','ㅌ','ㅍ','ㅎ'
};
/**
* @param args
*/
public static void main(String[] args) {
String temp = "바";
char a = temp.charAt(0);
a = (char) (a - 0xAC00);
int cho = a/21/28;
int joong = ( (a %(21*28))/28);
int jong = (a%28);
System.out.println(""+ (char)first[cho] + (char)middle[joong] + (char)last[jong]);
}
}
보면 알겠지만 자바에서 작성되는건 UNICoDE이다(아마도?)
현재 Eclipse개발환경중 문자 Encoding은 UTF-8방식이다. 거기서 한글을 빼온후 UTF-8에 따라 0xACC00 (<- UTF-8시작) 을 빼고 초성 중성 종성을 다음으로 빼온다
초성 = (원문자 /21 /28) 중성 = ( (원문자%(21*28))/28) 종성 = ( a%28)
이렇게 하고 문자 규칙에 따라 빼온다. 규칙은 위의 코드를 보면 알수 있다.
- 첫 와우 AddOn Hello WOW!
첫 와우 Addon을 제작하게 되었다. 이름하야 Hello WoW!!
천리길도 Hello World!부터라는 지론에 따라 어떻게 연동되는지를 살펴보겠다.
기본 프로그램 정보를 담고있는 *.toc파일. 그리고 UI와 LUA를 Mapping 시켜주는 *.xml 그리고 연산을 해주는 *.lua
작성을 해보자
기본적으로 "/World of Warcraft/interface/addons/애드온명" 으로 폴더가 만들어져있어야한다.
그리고 HelloWoW.toc으로 기본설정을 잡아야하고 toc에 정보를 넣어주어야한다.
HelloWoW.toc ---------------------------- ##Interface:40200 ##Title:HelloWOW ##Notes:Example HelloWoW.xml HelloWoW.lua ---------------------------
Interface에는 현재 버전 정보가 들어가있다. http://www.wowwiki.com/Getting_the_current_interface_number 로 현재 인터페이스 정보를 알아볼수 있다. 내가 작성하는건 4.2니까 40200이겠지 인터페이스 정보를 갱신안해놓으면 와우 애드온 로드시 '구버전'으로 제대로 로드가 안될 수 있다.
Title은 짐작대로고 노트는 그냥 설명이고 Author도 있음.
HelloWoW.xml ---------------------------------------- <UI xmlns="http://www.blizzard.com/wow/ui" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui"> <script file="HelloWoW.lua"/> <Frame name="HelloWoWFrame"> <Scripts> <OnLoad> HelloWoW_ShowMessage(); </OnLoad> </Scripts> </Frame> </UI> --------------------------------- HelloWoW.lua --------------------------------- function HelloWoW_ShowMessage() message("Hello WOW!"); end ---------------------------------
WoW API function을 lua에 넣어준적은 없지만 자동으로 되나보다. 신기한데?
이렇게 작성하면 Hello WOW!가 뜬다.