More actions
imported>Unknown No edit summary |
(Repair MoniWiki formatting after migration) |
||
| Line 34: | Line 34: | ||
=== 04월 25일 ver 0.55 === | === 04월 25일 ver 0.55 === | ||
''' 현재 상태 ''' | ''' 현재 상태 '''<br /> | ||
* VS.NET을 새로 깔고 다시 제작에 들어갔다 | * VS.NET을 새로 깔고 다시 제작에 들어갔다 | ||
* 전에 있던 코드를 좀 뜯어 고쳐서..ㅡ.ㅡ 어케어케 만들고는 있지만.. | * 전에 있던 코드를 좀 뜯어 고쳐서..ㅡ.ㅡ 어케어케 만들고는 있지만.. | ||
| Line 46: | Line 46: | ||
=== 05월 01일 ver 0.63 === | === 05월 01일 ver 0.63 === | ||
또 여러가지를 고치며 레벨 업!! 아하하.. 이제 완성이 얼마 남지 않았다. | 또 여러가지를 고치며 레벨 업!! 아하하.. 이제 완성이 얼마 남지 않았다.<br /> | ||
개선한 점은 History.txt를 만들며 남겨놓고 있다. | 개선한 점은 History.txt를 만들며 남겨놓고 있다.<br /> | ||
앞으로 고칠 점은 >.< | 앞으로 고칠 점은 >.<<br /> | ||
* SHIFT+ENTER : 이상하게 그 창에서만 듣지 않는다.. 무언가 문제가 있는듯.. Direct Input를 사용해 볼까 고려중이다. | * SHIFT+ENTER : 이상하게 그 창에서만 듣지 않는다.. 무언가 문제가 있는듯.. Direct Input를 사용해 볼까 고려중이다. | ||
* ㅡ.ㅡ 위의 문제를 해결하면 자동으로 해결되는 DOA와 감옥. | * ㅡ.ㅡ 위의 문제를 해결하면 자동으로 해결되는 DOA와 감옥. | ||
| Line 54: | Line 54: | ||
=== 05월 08일 Nightmare Ver 0.05 === | === 05월 08일 Nightmare Ver 0.05 === | ||
''' 현재 상태 ''' | ''' 현재 상태 '''<br /> | ||
결국 프로젝트(?)를 합쳐버렸다. 후훗. MSN 을 통해 노가다를 하고는 있지만 결국 한 자리에서 해야할듯 하다. | 결국 프로젝트(?)를 합쳐버렸다. 후훗. MSN 을 통해 노가다를 하고는 있지만 결국 한 자리에서 해야할듯 하다.<br /> | ||
물론 합치는 과정에서 이름이 새로 나왔다. | 물론 합치는 과정에서 이름이 새로 나왔다.<br /> | ||
가장 기본적인 것들은 해결. 카드 쓰는 부분은 전혀 구현되지 않았지만 그래도 대충은 돌아간다. | 가장 기본적인 것들은 해결. 카드 쓰는 부분은 전혀 구현되지 않았지만 그래도 대충은 돌아간다.<br /> | ||
'''앞으로 고칠 점''' | '''앞으로 고칠 점'''<br /> | ||
* SHIFT+ENTER 가 실질적으로 구현은 되지만 쓸모가 없다는 점이 발견되면서 그 쪽은 아예 보류. (화면을 보면서 Shift + Enter 는 쓸모가 없단 말이닷!) | * SHIFT+ENTER 가 실질적으로 구현은 되지만 쓸모가 없다는 점이 발견되면서 그 쪽은 아예 보류. (화면을 보면서 Shift + Enter 는 쓸모가 없단 말이닷!)<br /> | ||
* 역시나 카드 쓰는 걸 해결하면 일단은 거의 완성이다. (누워서 아무것도 안하고 게임을 할수 있을 정도다) | * 역시나 카드 쓰는 걸 해결하면 일단은 거의 완성이다. (누워서 아무것도 안하고 게임을 할수 있을 정도다)<br /> | ||
* 메모리상의 값을 얻어와서 해결할 방법은 아직은 먼 훗날의 이야기인 듯 하지만, 만약 가능하다면 모든 문제들이 해결되다시피한다. | * 메모리상의 값을 얻어와서 해결할 방법은 아직은 먼 훗날의 이야기인 듯 하지만, 만약 가능하다면 모든 문제들이 해결되다시피한다.<br /> | ||
* 즉, 메모리 상의 값을 얻어와서 해결할 방법을 알게 되는 순간 여태까지 해온 우리의 노가다는 모조리 꽝. | * 즉, 메모리 상의 값을 얻어와서 해결할 방법을 알게 되는 순간 여태까지 해온 우리의 노가다는 모조리 꽝.<br /> | ||
* 메모리 상의 값을 얻을 방법을 알게 된다면, 주사위를 예측하는 것도 가능할 것 같다. (완전 게임핵이로구만) | * 메모리 상의 값을 얻을 방법을 알게 된다면, 주사위를 예측하는 것도 가능할 것 같다. (완전 게임핵이로구만)<br /> | ||
== 배운 점들 == | == 배운 점들 == | ||
| Line 98: | Line 98: | ||
---- | ---- | ||
오.. 재밌는거 하고 있네~ 근데 주사위의 잔영을 제대로 안봐서 그런데, 창 모드로 게임이 실행되나 보지? DirectX 를 쓴다면 일반 윈도우 메세지 방식으로 처리하기 힘들지 않을까 함. (근데 해당 기능들 잘 되는 것 보니까 뭐.. 별 문제 없는 듯 하군~) --석천 | 오.. 재밌는거 하고 있네~ 근데 주사위의 잔영을 제대로 안봐서 그런데, 창 모드로 게임이 실행되나 보지? DirectX 를 쓴다면 일반 윈도우 메세지 방식으로 처리하기 힘들지 않을까 함. (근데 해당 기능들 잘 되는 것 보니까 뭐.. 별 문제 없는 듯 하군~) --석천<br /> | ||
ㅡㅡ; 전체화면이구요 DX쓰는거 맞아요.. 그래도 잘 먹히는 기능은 잘 먹히네요.^^ -- 선호 | ㅡㅡ; 전체화면이구요 DX쓰는거 맞아요.. 그래도 잘 먹히는 기능은 잘 먹히네요.^^ -- 선호 | ||
---- | ---- | ||
[[프로젝트분류]] | [[프로젝트분류]] | ||
Latest revision as of 14:01, 26 March 2026
DiceRoller
- 01학번 이선호
- 01학번 이재성
제작동기
- 주사위의잔영 - 소프트맥스의 온라인 커뮤니티 4LEAF에서 서비스중인 게임이다.
- 주사위를 굴려서 골까지 가는 게임으로 게임을 종료하면 소정의 GP를 얻을 수 있다.
- 그러나 이 GP를 얻기가 매우 귀찮은(ㅡㅡ;) 관계로 자동 롤러를 구상중에 있다. 거기에 시간제한까지 있어서 타이머도 붙이게 되었다.
- 윈도우즈 메세지와 창의 인스턴스/핸들 등을 공부하기에 좋은 것 같다. (창의 계층같은것도..?)
제작 일지
=== 04월 10일 ver 0.8 === 현재 상태
- 타이머를 분리하여.. 타이머는 항상 작동.
- 스타트/레디 버튼도 분리.
- 유저 인터페이스의 개선. 조금 더 편해졌다.
- DOA, 감옥에 걸렸을 때에도 Roll
- 맵의 추가 : 워프게이트, 한반도(좌/우) 추가.
- 채팅이 가능하다.ㅡ.ㅡa
- 게임 중에 카드를 쓰는 것이 가능해 졌다. ( 예 : 크루거와 만났을 때 발창 쓰기 )
- EXIT버튼 누르기 : Shift+Enter를 Roll로 사용하지 않았기 때문에 종료시 빠져나가는 루틴이 필요하다. 그래픽대조를 통해 Exit버튼을 누르자.
추가/고쳐야 할 점
- Shift+Enter가 안된다. -> 원래 불가능 하다는 결론..(발생시킬수는 있어도 창을 끌러올려야 한다.)
- 그러나.. 그래픽 대조를 하였는데 그래픽 카드별로 색이 틀리다. (대략 두가지 정도로 압축.)
- 자동 복구 루틴(방이 깨졌을 경우에)를 구현한다.
- 새로운 의뢰가 들어왔다. 키보드를 눌렀을 때 그에 상응하는 마우스 좌표를 클릭하는 것. (이것..은 보류)
- 프로젝트를 하나로 합쳐야 할 것 같다. 목적이 같지만 서로 관심분야가 달라서 결국 프로그램이 서로 달라지고 있다.
- 프로그램을 키고 오래 사용하면 스타트/레디 부분이 실행되지 않는다.
- 창을 내린 상태에서 주사위를 굴릴 때, 이동, 전투 이외에는 모든 상황에서 오토롤이 되버린다.
- 게임이 끝나고 나갈 때 가끔식 이유를 알수 없는 오류가 발생하곤 한다. 아마도 창을 찾은 상태에서 실제로는 없는 게 되버려서 그런 것 같다.
=== 04월 25일 ver 0.55 === 현재 상태
- VS.NET을 새로 깔고 다시 제작에 들어갔다
- 전에 있던 코드를 좀 뜯어 고쳐서..ㅡ.ㅡ 어케어케 만들고는 있지만..
- 타이머는 항상 작동
- 숙원사업 HOTKEY를 도입(이제 아무렇게나 눌러도 된다..>.<);
추가/고쳐야 할점
- Shift+Enter 어떻게든 넣고 말겠다.
- 그래픽 대조루틴을 통한 카드의 자동사용
- Start / Ready의 자동 Click
=== 05월 01일 ver 0.63 === 또 여러가지를 고치며 레벨 업!! 아하하.. 이제 완성이 얼마 남지 않았다.
개선한 점은 History.txt를 만들며 남겨놓고 있다.
앞으로 고칠 점은 >.<
- SHIFT+ENTER : 이상하게 그 창에서만 듣지 않는다.. 무언가 문제가 있는듯.. Direct Input를 사용해 볼까 고려중이다.
- ㅡ.ㅡ 위의 문제를 해결하면 자동으로 해결되는 DOA와 감옥.
- 혹시 메모리상의 값을 얻어와서 해결 할 수 있지 않을까를 생각해 보고 있다. 메모리에 접근 하는 방법은 없을까..ㅡ.ㅡ?
=== 05월 08일 Nightmare Ver 0.05 === 현재 상태
결국 프로젝트(?)를 합쳐버렸다. 후훗. MSN 을 통해 노가다를 하고는 있지만 결국 한 자리에서 해야할듯 하다.
물론 합치는 과정에서 이름이 새로 나왔다.
가장 기본적인 것들은 해결. 카드 쓰는 부분은 전혀 구현되지 않았지만 그래도 대충은 돌아간다.
앞으로 고칠 점
- SHIFT+ENTER 가 실질적으로 구현은 되지만 쓸모가 없다는 점이 발견되면서 그 쪽은 아예 보류. (화면을 보면서 Shift + Enter 는 쓸모가 없단 말이닷!)
- 역시나 카드 쓰는 걸 해결하면 일단은 거의 완성이다. (누워서 아무것도 안하고 게임을 할수 있을 정도다)
- 메모리상의 값을 얻어와서 해결할 방법은 아직은 먼 훗날의 이야기인 듯 하지만, 만약 가능하다면 모든 문제들이 해결되다시피한다.
- 즉, 메모리 상의 값을 얻어와서 해결할 방법을 알게 되는 순간 여태까지 해온 우리의 노가다는 모조리 꽝.
- 메모리 상의 값을 얻을 방법을 알게 된다면, 주사위를 예측하는 것도 가능할 것 같다. (완전 게임핵이로구만)
배운 점들
- 윈도우의 메세지 체계를 조금 더 알 수 있었다.
- SPY++를 조금 더 잘 사용할 수 있게 되었다.
- 윈도우의 구조(메인프레임 -> 차일드 윈도우) 에 대해서 조금 더 공부할 수 있었다.
- 현재는 윈도우 메세지 Hooking에 대해서 보고 있다. // 이건 좀 보류..ㅡ.ㅡ;;
필요한 Source
프로세스와 주소를 알때 그 주소의 값을 얻어오는 함수
HWND hWnd = FindWindow("My Process Caption Name", NULL);
if(hWnd)
{
DWORD ProcessId;
GetWindowThreadProcessId(hWnd, &ProcessId); // hWnd로 프로세스 ID를 얻음..
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessId);
if(hProcess)
{
DWORD ReadBytes;
char buffer[100];
ReadProcessMemory(hProcess, (LPCVOID)0x400000, buffer, 100, &ReadBytes);
// WriteProcessMemory를 이용하면 쓰기...
CloseHandle(hProcess);
}
}
buffer부분에 char형태로 저장이 된다. atoi 함수로 정수로 컨버전하자.
오.. 재밌는거 하고 있네~ 근데 주사위의 잔영을 제대로 안봐서 그런데, 창 모드로 게임이 실행되나 보지? DirectX 를 쓴다면 일반 윈도우 메세지 방식으로 처리하기 힘들지 않을까 함. (근데 해당 기능들 잘 되는 것 보니까 뭐.. 별 문제 없는 듯 하군~) --석천
ㅡㅡ; 전체화면이구요 DX쓰는거 맞아요.. 그래도 잘 먹히는 기능은 잘 먹히네요.^^ -- 선호