I have a problem related to security of the Client, Flyff.a and Flyff.b.
Flyff.a will Client Flyff.b the Programs folder, right?
I made the changes, and simply does not work. I change all datas.res and will not appear the old Client message! Here are my files:
OBS: I've tried with other MSGVER but still same.
MSGVER Neuz>String Trable: 00000000
AccountServer.ini
LoginServer.iniQuote:
MSG_VER "00000000" // Must match MSG_VER in LoginServer.ini and Neuz WinMain.rc!
SOURCEQuote:
MSG_VER "00000000" // Must match MSG_VER in AccountServer.ini and Neuz WinMain.rc!
NEUZ/VersionCommon.h - Search Crtl+f = __SECURITY_0628
#ifndef __VERSION_COMMON_H__
#define __VERSION_COMMON_H__
#define __MAINSERVER
#define __FIX_CHEAT
#define __GUILD_COLOR
#define __VER 15 // 15차
#if !defined( __TESTSERVER ) && !defined( __MAINSERVER )
#define __INTERNALSERVER
#endif
#if (_MSC_VER > 1200)
#define __VS2003 // 컴파일러변경.net
#endif
#define NO_GAMEGUARD //cuvvvie
#define __TRANSFER_ERROR_TEXT
#define __CRC
#define __PROTOCOL0910
#define __PROTOCOL1021
#define __INFO_SOCKLIB0516 // 네트워크 에러얻기
#define __S1108_BACK_END_SYSTEM // Trans, World, Neuz : 백앤드시스템
#define __THROUGHPORTAL0810 // 웹에 의한 실행
#define __TWN_LOGIN0816 // 대만 로그인 프로토콜 변경 // 클라/인증
#define __FIX_WND_1109 // 창 생성 시 부모창 지정 오류 수정
#define __EVENT_1101 // 출첵 이벤트
#define __EVE_NEWYEAR // 신년 효과
#define __CHEAT_ENGINE_BLOCK // bloquear CE
#define __CEFIX // bloquear CE Reforcado
#define __PETFILTER
#define __S_SERVER_UNIFY // 서버 통합 Neuz, World
#define __LANG_IME_0327 // 국가별 ime표시 창 출력 구분
#define __STL_0402 // stl
#define __NEWYEARDAY_EVENT_COUPON // 설 이벤트 - 헤어˜? 성형 무료이용권 관련.
// 해외 6차 적용
#define __LANG_1013 // 해외 버전 신규 추가 스크립트
#define __ITEMDROPRATE // 이벤트 아이템 드롭률 조정
// 10
#define __TRADESYS // 교환 아이템 스크립트(이벤트, 퀘스트, ... ) Neuz, World
#define __EVE_BALLOON // 풍선 이벤트 관련
#define __CSC_GAME_GRADE // 게임물등급관련 채팅창 알림 및 이미지 변경.
#define __PK_PVP_SKILL_REGION // PK금지구역에서 악행 스킬은 PVP상대에게만 가능하도록..
#define __EVENT_1101_2 // 출첵 이벤트 64비트 변경
#define __S_RECOMMEND_EVE // 추천 이벤트 Neuz, Trans, World
#define __EVE_MINIGAME // Mini Game 4종 이벤트 추가 관련.
#define __S_ADD_EXP // EXP_S 아이템 생성
#define __RULE_0615 // 명명 규칙 정리
#define __FILTER_0705 // 필터링 규칙 변경
#define __S_BUG_GC // 길드대전 신청시 같은 금액을 신청하면 길드아이디로 쇼트 되서 순위가 바뀌는 문제 수정( map -> vector )
#define __S_ADD_RESTATE // 상용화 아이템 생성( 리스테트 힘, 민첩, 체력, 지능 )
#define __PROP_0827 // 아이템 프로퍼티 적용 파라미터 확장
#define __PKSERVER_USE_ANGEL // PK서버에서만 엔젤관련 아이템,버프 사용
#define __CSC_ENCHANT_EFFECT_2 // 기존 이펙트 + 향상된 이펙트
//11차
// #define __MA_VER11_02 // 수표 기능 페린 관련
// #define __MA_VER11_03 // neuz극단창(B)에서 극단원이 멀리 떨어져 있어도 레벨이 표시 되도록
// #define __MA_VER11_04 // 길드 창고 로그 기능 world,database,neuz
// #define __MA_VER11_05 // 케릭터 봉인 거래 기능 world,database,neuz
// #define __MA_VER11_06 // 확율스킬 효과수정 world,neuz
// #define __CSC_VER11_1 // <레벨??> 삭제, 채팅창 수정, 페냐거래 취소버튼 삭제
// #define __CSC_VER11_2 // 타겟 표시 방법 변경
// #define __CSC_VER11_3 // 칩으로 상점 이용 하기 (길드 대전 관련)
// #define __CSC_VER11_4 // 메신저창 개선
// #define __CSC_VER11_5 // 태스크바 확장
// #define __GUILDCOMBATCHIP // 길드대전 칩보상 및 칩을 통한 상점 이용
// #define __GUILD_COMBAT_1TO1 // 일대일 길드 대전
// #define __GUILD_BANK_LOG // 길드뱅크 로그창 추가
// #define __EXPITEM_TOOLTIP_CHANGE // 경험치 아이템 표기 방법 변경
// #define __REMOVE_ENDURANCE // 아이템 내구력 개념 제거
// #define __PIERCING_REMOVE // 피어싱 옵션 제거
// #define __CHIPI_071210 // 기간제 아이템 지속시간 초단위 표기
#define __EVENTLUA_COUPON // 쿠폰 이벤트
#define __NOLIMIT_RIDE_ITEM // 레벨 제한 없는 비행체 아이템
#define __NPC_BUFF // NPC를 통해 버프받기
// #define __SYS_POCKET // 주머니
// #define __SYS_COLLECTING // 채집 시스템
// #define __SYS_IDENTIFY // 각성, 축복
// #define __FIX_ROTATE // 비스트에서 발견된 오류 수정
// #define __ADD_ZOOMOPT // 줌옵션 추가
// #define __MOD_VENDOR // 개인상점 개선
// #define __FIX_COLLISION // 충돌 문제 수정
// #define __FIX_PICKING // 피킹 문제 수정
// #define __CAPTURE_JPG // JPG포맷으로 캡쳐
#define __SYS_TICKET // 입장권
// #define __SYS_PLAYER_DATA // 캐릭터 정보 통합
#define __HACK_1023 // 리소스 변조 // 날것 속도, 무기 공격 속도
#define __RT_1025 // 메신저
#define __VENDOR_1106 // 개인상점 허용 문자
#define __JEFF_11
#define __JEFF_9_20 // 비행 시간을 침묵 시간으로 전용
#define __JEFF_11_4 // 아레나
#define __JEFF_11_5 // 메모리 누수
#define __JEFF_11_6 // 바보 몬스터
#define __DST_GIFTBOX // 착용 아이템에 기프트 박스 기능 추가
#define __SFX_OPT // 이펙트(파티클) 최적화 관련
//#define __PERF_0229
#define __HELP_BUG_FIX // 도움말관련 버그 수정 (도움말 한개만 띄우기 인스턴스 관리)
#define __CHIPI_DYO // NPC를 특정국가에서만 출력할 수 있게 character.inc에 설정
// 12차
// #define __SECRET_ROOM // 비밀의 방
// #define __TAX // 세금
// #define __CSC_VER12_1 // 개인상점 중 플레이어 살펴보기 메뉴 가능하도록 수정 & 살펴보기 창 유지하기
// #define __CSC_VER12_2 // 길드 창의 멤버 텝에 항목별 정렬이 가능하도록 추가
// #define __CSC_VER12_3 // 퀘스트가 많을 경우 퀘스트 항목이 잘리는 현상 때문에 대화창 늘림
// #define __CSC_VER12_4 // 피어싱 제거 창 개선 및 얼터멋 보석 제거 창 추가
// #define __CSC_VER12_5 // 펫 알 변환 기능 추가
// #define __HEAVEN_TOWER // 심연의 탑
// #define __EXT_PIERCING // 무기 피어싱
// #define __NEW_SUMMON_RULE // 몬스터 소환 규칙 변경
// #define __MOD_TUTORIAL // 튜토리얼 개선
// #define __LORD // 군주
// #define __PET_0519 // 펫 각성
// #define __J12_0 // 각성, 축복 가능 파츠 추가
// #define __UPDATE_OPT // 옵션창 개선
// #define __CAM_FAST_RECOVER // 카메라 복원속도 증가
// #define __JHMA_VER12_1 //12차 극단유료아이템
// #define __ITEMCREATEMON_S0602 // 몬스터 생성 Neuz, World
// #define __PARSKILL1001 //12차 파스킬 아이템 수정 world,core,neuz
// #define __LEAK_0827
// 13차
// #define __EXT_ENCHANT // 제련 확장(속성, 일반)
// #define __RAINBOW_RACE // 레인보우 레이스
#define __HOUSING // 하우징 시스템
// #define __QUEST_HELPER // 퀘스트 NPC위치 알림.
// #define __CHIPI_QUESTITEM_FLAG
// #define __RENEW_CHARINFO // 캐릭터정보창 리뉴얼
// #define __HONORABLE_TITLE // 달인
#define __MAX_BUY_ITEM9999 // 화살포스터구입갯수9999개
// #define __REMOVE_JOINPARTYMEMBER_ANI // 파티맴버조인시 애니 빼기
// #define __CSC_VER13_1 // WorldMap 몬스터 표시
// #define __CSC_VER13_2 // 커플 시스템
// #define __COUPLE_1117 // 커플 시스템
// #define __COUPLE_1202 // 커플 보상
#define __LAYER_1020 // __LAYER_1015 테스트
#define __AZRIA_1023 // 입장권 계층 적용
#define __PET_1024 // 펫 작명
#define __BUFF_1107
#define __SYNC_1217 // 비동기 수정(필리핀 보고)
#define __SYS_ITEMTRANSY // NPC메뉴 아이템 트렌지 기능
#define __SPEED_SYNC_0108 // ResetDestParam speed 수정 느려지게 보이는것 수정 타유저의 초기스피드비동기도 수정 예정
#define __PARTY_DEBUG_0129 // 극단장 튕기는 현상 디버깅 neuz
#define __FUNNY_COIN // 퍼니 코인
#define __GPAUTH
#define __GPAUTH_01
#define __GPAUTH_02
#define __EUROPE_0514
#define __WINDOW_INTERFACE_BUG // 월드 이동 상황에서 아이템 걸린 윈도우 창 띄워져 있으면 클라이언트 크래쉬되는 문제 수정
#define __MAP_SECURITY // 맵툴로 변조한 맵 검사
// 14차
#define __NEW_CONTINENT // 14차 신규대륙 하르모닌 추가
#define __SMELT_SAFETY // 14차 안전제련
#define __INSTANCE_DUNGEON // 14차 인스턴스 던전
#define __EQUIP_BIND // 장착아이템 착용시 귀속
#define __EXT_ATTRIBUTE // 속성제련 공식 확장 및 변경
#define __NEW_ITEM_LIMIT_LEVEL // 아이템 착용레벨 규칙 변경(MASTER, HERO도 레벨 적용을 받고 하위 클래스 무기는 무조건 장착 가능)
#define __WATER_EXT // 물 표현 확장 (물 텍스쳐의 종류 및 프레임속도 변경 추가)
#define __WND_EDIT_NUMBER_MODE // 에디트 컨트롤 숫자만 입력받게 하는 모드
#define __SHIFT_KEY_CORRECTION // 쉬프트 키 입력 문제 수정
#define __STATIC_ALIGN // 스태틱 컨트롤에 정교한 정렬 기능 추가
#define __ITEM_DROP_SOUND // 아이템 드롭 시 효과음 스크립트로 처리
#define __JOB_TEXT // 마스터, 히어로 관련 아이템에 '필요 직업' 텍스트 출력되도록 수정
#define __RESTATE_CONFIRM // 리스테트 사용 시, 확인 창 출력
#define __PREVENTION_TOOLTIP_BUG // 프리벤션 툴팁에 의미 없는 텍스트 출력되는 문제 수정
#define __DROP_CONFIRM_BUG // 아이템 관련 확인 창이 열린 상태에서 일어나는 각종 오류 수정
#define __CLOUD_ANIMATION_BUG // 구름 애니메이션이 특정 영역에서만 수행되는 문제 수정
#define __BUFF_CRASH // 버프 렌더링 관련하여 클라이언트 크래쉬되는 문제 수정
#define __BS_FIX_SHADOW_ONOBJECT // 오브젝트 그림자 리시버 조건검사 설정 ( 주인공 위주, 인던 천정 그림자 제거 )
#define __BS_FIX_HAIR_AMBIENT // 캐릭터 헤어 ambient 조정 ( 인던에서 머리카락 색깔 까맣게 나오는 문제 수정 )
#define __BALLOON_CODE_IMPROVEMENT // 풍선 관련 코드 개선
#define __WING_ITEM // 날개 아이템
#define __USE_SOUND_LIB_FMOD // use FMod sound lib
#define __PCBANG // PC방 혜택
// end 14th
// 15차 ZU TEST ZWECKEN AUSDEKLARIERUNG ENTFERNT!
#define __DYNAMIC_MPU // 변경가능한 MPU !!
#define __BOUND_BOX_COLLISION // 바운드 박스 충돌 루틴 개선
#define __BS_CHANGING_ENVIR // 대륙별 환경 변경 ( light, fog, sky, weather, 24hours light ... ) <<< ONLY CLIENT!!!! >>>
#define __USING_CONTINENT_DATA // 대륙 경계데이터 외부에서 긁어옴!
#define __IMPROVE_QUEST_INTERFACE // 15차 향상된 퀘스트 인터페이스 시스템
#define __IMPROVE_SYSTEM_VER15 // 15차 개선 사항
#define __15TH_INSTANCE_DUNGEON // 15차 인스턴스 던전
#define __PETVIS // 15차 비스펫
#define __GUILD_HOUSE // 15차 길드하우스
#define __TELEPORTER // 15차 텔레포터
#define __FIND_OBJ_INSIGHT // 시야거리 안의 동적오브젝트 출력( 미니맵 오른쪽버튼 클릭 )
#define __HERO129_VER15 // 15차 히어로 레벨확장
#define __MUSIC2 // 마일즈 7.2g ver 업데이트 ( OGG 재생 가능 버젼 ) 차후 Lib업데이트시에 같이 풀어줘야함.
#define __NEW_CONTINENT15 // 추가 대륙 ( 협곡 )
#define __BS_BBOX_ABS_EXTENT // BBOX 길이 절대값으로 수정
#define __CAMPUS // 15차 사제 시스템
#define __BS_FIXED_KNOCKBACK // 넉백시 상태 꼬임현상 수정
#define __BS_FIXED_EQUIPMOTION // 아이템 장/탈 착중 기존모션이 유지되는현상 수정
#define __15_5TH_ELEMENTAL_SMELT_SAFETY // 15.5차 속성 안전 제련 추가
#define __2ND_PASSWORD_SYSTEM // 2차 비밀번호 시스템
// end 15th
#define __QUIZ // 퀴즈 이벤트 시스템
#define __EVENTLUA_RAIN // 장마 이벤트 -> 루아로 변경
#define __EVENTLUA_SNOW // 강설 이벤트
#define __ADD_RESTATE_LOW // 상용화 아이템 생성( 리스테트 하급 힘, 민첩, 체력, 지능 )
#define __YS_CHATTING_BLOCKING_SYSTEM // 캐릭터 채팅 차단 시스템
#define __BAN_CHATTING_SYSTEM // 연속 채팅 금지 시스템
#define __ENCRYPT_PASSWORD // mulcom BEGIN100218 패스워드 암호화
// #define __CERTIFIER_COLLECTING_SYSTEM // 인증 서버 수집 시스템
#define __DELETE_CHAR_CHANGE_KEY_VALUE // 버디버디 i_PIN 도입으로 인한 캐릭터삭제 키값 변경(국내, 주민번호 -> 2차비번)
#define __BS_ADJUST_SYNC // mover간 동기화 개선
#define __SHOP_COST_RATE // 상점 가격 조정
// #define __NEW_WEB_BOX // 새로운 웹 표현 창
#define __PROTECT_AWAKE //각성보호
#define __MAIL_REQUESTING_BOX // 메일 요청 박스
#define __BS_SAFE_WORLD_DELETE // CWorld::Process에서 safe delete obj( sfx 류로 확인댐 )
// #define __GAME_GRADE_SYSTEM // 게임물 등급 표시 시스템
#define __BS_FIX_ARRIVEPOS_ALGO // 마우스 이동시 도착 검사루틴 개선 ( 정“‡향 축으로 한곳만 도착했을때 멈추는 문제가있었음 )
#define __BS_ITEM_UNLIMITEDTIME // 아이템 유지시간 ( 999999999 >= 일경우 무제한 표기 )
#define __ENVIRONMENT_EFFECT
// 8.5차
#if defined(__INTERNALSERVER) // 내부 사무실 테스트서버
// #define __RULE_0615
#undef __TRANSFER_ERROR_TEXT
#define __CPU_UTILDOWN_060502 // CPU 사용률 감소작업
#define __SLIDE_060502 // 땅으로 꺼지는 문제 수정
#define __GUILDVOTE // 길드 투표
#define __IAOBJ0622 // 상대 목표 좌표 전송 // 월드, 뉴즈
#define __YNOTICE_UNI1026 // 공지사항 유니코드 지원
// #define __YENV
// #define __YENV_WITHOUT_BUMP
#define __SKILL0517 // 스킬 레벨 파라미터
#define __YAIMONSTER_EX // AI기능 추가 - Neuz, World
// #define __Y_INTERFACE_VER3 // 인터페이스 버전 3.0 - Neuz
#define __VERIFY_MEMPOOL
// #define __S_NEW_SKILL_2 // 스킬 개선 패킷 전송 Neuz, World, Trans
#define __Y_ROTXZ // 회전 추가 Neuz, World
#define __Y_PATROL // 정찰...Neuz. World
#define __Y_CHARACTER_TEXT // 캐릭터 정보창 프로그램 텍스트 출력..Neuz
#define __Y_RENDER_NAME_OPTION // 이름 출력 선택 UI.Neuz
#define __V060721_TEXTDRAG
#define __Y_MAPVIEW_EX
#define __Y_BEAUTY_SHOP_CHARGE // 뷰티샵, 개인상점 유료아이템화..Neuz, World
// #define __EVENT_FALL // 단풍 이벤트 - 모델교체 Neuz, World
// #define __LANG_1013 // 해외 버전 추가 스크립트
// #define __KWCSC_UPDATE // 스킬 발동 관련 문제 수정 Neuz
// #define __CSC_VER8_1 // 8차 'T'키 사용, 상대방 레벨 안보이기, 화면 모든 창 On/Off Neuz
// #define __CSC_VER8_2 // 8차 파티창 관련 적용 Neuz
// #define __JEFF_VER_8 // 8차 작업
// #define __Y_FLAG_SKILL_BUFF // 팻, 변신 아이템 토글버프 적용... Neuz, World
// #define __Y_GAMMA_CONTROL_8 // 밝기, 감마, 명암 조절 Neuz
// #define __Y_CHAT_SYSTEM_8 // 시스템 메세지 윈도우화... Neuz
// #define __Y_EYE_FLASH_8 // 눈깜박거리기... Neuz
// #define __Y_CAMERA_SLOW_8 // 8차 키/마우스 X축 회전시 보간으로 회전하기..Neuz
// #define __Y_MAX_LEVEL_8 // 만랩 120으로 조정... Neuz, World, Trans
// #define __CSC_VER8_3 // 8차 버프창 관련 적용, Key Down시 스킬발동 1.5초간 딜레이로 지속되게 변경 Neuz
// #define __CSC_VER8_4 // 8차 헤어샵관련 수정 및 성형수술 기능 추가.
// #define __JHMA_VER_8_1 // 8차 게임내돈드롭금지 Neuz, World
// #define __JHMA_VER_8_2 // 8차 게임내아이템판매가격제한풀기 Neuz, World
#define __FIX_WND_1109 // 자식 창 초기화 오류 수정
// #define __JHMA_VER_8_3 // 8차 ctrl 자동공격기능 삭제 Neuz
// #define __JHMA_VER_8_4 // 8차 타겟클릭자동공격 이모티콘 Neuz
// #define __JHMA_VER_8_5 // 8차 스킬경험치다운변경 Neuz, World
// #define __JHMA_VER_8_7 // 8차 듀얼존에 관계없이 PVP가능하게함 Neuz, World
// #define __CSC_VER8_5 // 8차 엔젤 소환 Neuz, World, Trans
#define __TRAFIC_1218 // 서버에서 보낸 패킷 정보
#define __Y_HAIR_BUG_FIX
#define __FOR_PROLOGUE_UPDATE // 태국,대만,미국,독일 Prologue추가
// #define __NEWYEARDAY_EVENT_COUPON // 설 이벤트 - 헤어˜? 성형 무료이용권 관련.
#define __TRAFIC_1215 // 전송량 감소
// #define __Y_NEW_ENCHANT // 제련 아이템 변경, Neuz, World
// #define __ULTIMATE // 9,10차 제련
// #define __LEGEND // 10차 전승시스템 Neuz, World, Trans
// #define __CSC_VER9_1 // 9차 전승관련 Clienet - Neuz
// #define __PET_0410 // 9, 10차 펫
#define __HACK_0516 // 미국 해킹 2차
// #define __AI_0509 // 몬스터 인공지능
// #define __CSC_VER9_RESOLUTION // Wide및 고해상도 추가
// #define __Y_ADV_ENCHANT_EFFECT // 제련 이팩트 향상 버전
// #define __S_9_ADD // 9차 추가분
// #define __RECOVERY10 // 9차 추가 (타격, 피격 10초 후 자동 회복)
// #define __CSC_VER9_2 // 9차 상태창 변경 관련 Neuz, World
// #define __CSC_VER9_3 // 9차 채팅상황에서 Function Key 사용 가능
// #define __CSC_VER9_4 // 클라이언트 구동 시 공백시간에 이미지 추가.
// #define __CSC_VER9_5 // 9차 제련관련 (추가 검광 기능)
// #define __Y_DRAGON_FIRE // 메테오니커 파이어 발사!!!
// #define __LUASCRIPT // 루아 스크립트 사용 (World, Trans, Neuz)
// #define __EVENTLUA // 이벤트 (루아 스크립트 적용) - World, Trans, Neuz
// #define __METEONYKER_0608
// #define __CSC_UPDATE_WORLD3D // World3D Object Culling부분 업데이트
// #define __CSC_VER9_REMOVE_PKSETTING // 옵션 설정 창에서 PK설정 제거 (무조건 Ctrl키 누른 상태에서만 공격)
#define __SECURITY_0628 // ¸®¼O½º ¹oAu AIAo not contained
// #define __INSERT_MAP // 스타트메뉴에 전체지도 메뉴 추가
#define __GLOBAL_COUNT_0705 // CTime::GetTimer
// #define __SKILL_0706 // 대인용 AddSkillProp 컬럼 추가 및 적용
// #define __AI_0711 // 메테오니커 AI 수정
// #define __REMOVE_ATTRIBUTE // 속성제련 제거(10차로 변경)
// #define __CSC_ENCHANT_EFFECT_2 // 기존 이펙트 + 향상된 이펙트
// #define __SYS_TICKET // 입장권
// #define __SYS_PLAYER_DATA // 캐릭터 정보 통합
// #define __HACK_1023 // 리소스 변조 // 날것 속도, 무기 공격 속도
// #define __RT_1025 // 메신저
// #define __LINK_PORTAL // 외부 포탈 연결 시 무인자 처리
// #define __VENDOR_1106 // 개인상점 허용 문자
// #define __JEFF_11
#define __JEFF_11_1
// #define __JEFF_11_4 // 아레나
// #define __JEFF_11_5 // 메모리 누수
// #define __DST_GIFTBOX // 착용 아이템에 기프트 박스 기능 추가
#define __DISABLE_GAMMA_WND // 윈도우 모드에서 감마 조절 불가하게 수정
#define __ATTACH_MODEL // 모델에 다른 모델 붙이기 (날개...)
#define __NEW_PROFILE
#define __VTN_TIMELIMIT // 베트남 플레이 시간 제한
// #define __FLYFF_INITPAGE_EXT
#define __BS_CHECKLEAK // 메모리 누수 탐지및 라인 확인 2009/07/14
#define __BS_ADJUST_COLLISION // 충돌 루틴 개선 ( 2009. 07. 28 )
// #define __BS_PUTNAME_QUESTARROW // 퀘스트 클릭시 보상 NPC 화살표 표현중 이름 추가 ( 09_1228 제거 )
#define __JAPAN_AUTH // 일본 인증 변경(웹인증)
#define __IMPROVE_MAP_SYSTEM // 향상된 지도 시스템
// #define __BS_NO_CREATION_POST // 임시 : 우체통 생성 무시
#undef __VER
#define __VER 15
#define __GUILD_HOUSE_MIDDLE // 길드하우스 중형
#define __BS_ADDOBJATTR_INVISIBLE // CObj Invisible 에 관한 속성추가 --> 16차 예정
#define __BS_DEATH_ACTION // die 상태로 진입시 연출 효과 ( client only )
#define __BS_EFFECT_LUA // 오브젝트 상태별 효과연출 ( Lua base )
#define __BS_ADD_CONTINENT_WEATHER // 대륙 날씨 추가 ( 온난화로 인한 태양날씨, 다른 어떤이유로든 변하지 않음 )
#define __BS_CHANGEABLE_WORLD_SEACLOUD // 변경가능한 월드 바다구름
#elif defined(__TESTSERVER) // 외부 유저 테스트서버
#define NO_GAMEGUARD
#define __CPU_UTILDOWN_060502 // CPU 사용률 감소작업
#define __SLIDE_060502 // 땅으로 꺼지는 문제 수정
#define __GUILDVOTE // 길드 투표
// #define __SKILL0517 // 스킬 레벨 파라미터
#define __Y_CHARACTER_TEXT // 캐릭터 정보창 프로그램 텍스트 출력..Neuz
#define __V060721_TEXTDRAG // 글자에 효과주기
#define __Y_ROTXZ // 회전 추가 Neuz, World
#define __Y_PATROL // 정찰...Neuz. World
#define __Y_BEAUTY_SHOP_CHARGE // 뷰티샵, 개인상점 유료아이템화..Neuz, World
#define __TRAFIC_1215 // 전송량 감소
// #define __ULTIMATE // 9,10차 제련
// #define __LEGEND // 10차 전승시스템 Neuz, World, Trans
// #define __CSC_VER9_1 // 9차 전승관련 Clienet - Neuz
// #define __CSC_VER9_RESOLUTION // Wide및 고해상도 추가
// #define __Y_ADV_ENCHANT_EFFECT // 제련 이팩트 향상 버전
// #define __S_9_ADD // 9차 추가분
// #define __RECOVERY10 // 9차 추가 (타격, 피격 10초 후 자동 회복)
// #define __CSC_VER9_2 // 9차 상태창 변경 관련 Neuz, World
// #define __CSC_VER9_3 // 9차 채팅상황에서 Function Key 사용 가능
// #define __CSC_VER9_4 // 클라이언트 구동 시 공백시간에 이미지 추가.
// #define __CSC_VER9_5 // 9차 제련관련 (추가 검광 기능)
// #define __Y_DRAGON_FIRE // 메테오니커 파이어 발사!!!
#define __HACK_0516 // 미국 해킹 2차
// #define __LUASCRIPT // 루아 스크립트 사용 (World, Trans, Neuz)
// #define __EVENTLUA // 이벤트 (루아 스크립트 적용) - World, Trans, Neuz
// #define __CSC_VER9_REMOVE_PKSETTING // 옵션 설정 창에서 PK설정 제거 (무조건 Ctrl키 누른 상태에서만 공격)
// #define __INSERT_MAP // 스타트메뉴에 전체지도 메뉴 추가
// #define __PET_0410 // 9, 10차 펫
// #define __AI_0509 // 몬스터 인공지능
// #define __METEONYKER_0608
// #define __SKILL_0706 // 대인용 AddSkillProp 컬럼 추가 및 적용
// #define __AI_0711 // 메테오니커 AI 수정
#define __GLOBAL_COUNT_0705 // CTime::GetTimer
// #undef __VER
// #define __VER 11 // 11차
#define __JEFF_11_1
// #define __JEFF_11_4 // 아레나
// #define __JEFF_11_5 // 메모리 누수
// #define __JAPAN_SAKURA // 벗꽃 이벤트
// VER 16 __TESTSERVER begin
#define __GUILD_HOUSE_MIDDLE // 길드하우스 중형
#define __BS_ADDOBJATTR_INVISIBLE // CObj Invisible 에 관한 속성추가 --> 16차 예정
#define __BS_DEATH_ACTION // die 상태로 진입시 연출 효과 ( client only )
// #define __BS_EFFECT_LUA // 오브젝트 상태별 효과연출 ( Lua base )
#define __BS_ADD_CONTINENT_WEATHER // 대륙 날씨 추가 ( 온난화로 인한 태양날씨, 다른 어떤이유로든 변하지 않음 )
#define __BS_CHANGEABLE_WORLD_SEACLOUD // 변경가능한 월드 바다구름
// VER 16 __TESTSERVER end
#elif defined(__MAINSERVER) // 외부 본섭
// #define __TMP_POCKET // 휴대 가방 일시적으로 막기
#define __Y_BEAUTY_SHOP_CHARGE // 뷰티샵, 개인상점 유료아이템화..Neuz, World
#define __TRAFIC_1215
// #define __Y_NEW_ENCHANT // 제련 아이템 변경, Neuz, World
// #define __EVENT_FALL // 단풍
// #define __JAPAN_SAKURA // 벗꽃 이벤트
#define __JEFF_11_1
// #define __RAIN_EVENT // 장마 이벤트(비오는 동안 경험치 2배)
#endif // end - 서버종류별 define
#ifndef NO_GAMEGUARD
#define __NPROTECT_VER 4
#endif
#endif // VERSION_COMMON_H
[/QUOTE]
Certifier/VersionCommon.h - Search Crtl+f = __SECURITY_0628
[quote]//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define IDC_STATIC -1
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Korean resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
#ifdef _WIN32
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
#pragma code_page(949)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_WEBDLG DIALOGEX 0, 0, 182, 182
STYLE WS_POPUP | WS_BORDER
EXSTYLE WS_EX_TOOLWINDOW
FONT 10, "System", 0, 0, 0x1
BEGIN
END
IDD_CONSOLE_DLG DIALOG DISCARDABLE 0, 0, 204, 321
STYLE WS_CAPTION | WS_SYSMENU
CAPTION "NeuzConsole"
FONT 10, "System"
BEGIN
LISTBOX IDC_CONSOLE_LIST,7,7,190,287,LBS_NOINTEGRALHEIGHT |
WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
EDITTEXT IDC_CONSOLE_EDIT,7,302,190,12,ES_AUTOHSCROLL
END
IDD_DIALOG4 DIALOG DISCARDABLE 0, 0, 187, 94
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 10, "System"
BEGIN
DEFPUSHBUTTON "OK",IDOK,130,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,130,24,50,14
END
IDD_DIALOG5 DIALOG DISCARDABLE 0, 0, 187, 94
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 10, "System"
BEGIN
DEFPUSHBUTTON "OK",IDOK,130,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,130,24,50,14
END
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 3,8,22,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "000004b0"
BEGIN
VALUE "Comments", "\0"
VALUE "CompanyName", "Aeonsoft \0"
VALUE "FileDescription", "Neuz\0"
VALUE "FileVersion", "3, 8, 22, 1\0"
VALUE "InternalName", "Neuz\0"
VALUE "LegalCopyright", "Copyright ¨Ï 2002\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "Neuz.exe\0"
VALUE "PrivateBuild", "\0"
VALUE "ProductName", "Masquerade\0"
VALUE "ProductVersion", "1, 0, 0, 1\0"
VALUE "SpecialBuild", "\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0, 1200
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// Data
//
IDR_DATA1 RCDATA DISCARDABLE
BEGIN
0x7376, 0x312e, 0x312e, 0x0a0d, 0x2d3b, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d,
0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d,
0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d,
0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d,
0x0d3b, 0x0d0a, 0x090a, 0x2a2f, 0x0a0d, 0x6909, 0x2866, 0x6620, 0x6944,
0x6666, 0x7375, 0x5465, 0x7865, 0x7574, 0x6572, 0x612e, 0x3d20, 0x203d,
0x2e30, 0x6630, 0x2920, 0x0a0d, 0x7b09, 0x0a0d, 0x0909, 0x6572, 0x7574,
0x6e72, 0x3020, 0x0d3b, 0x090a, 0x7209, 0x7465, 0x7275, 0x206e, 0x6e49,
0x442e, 0x6669, 0x7566, 0x6573, 0x0d3b, 0x090a, 0x0d7d, 0x090a, 0x6c65,
0x6573, 0x0a0d, 0x7b09, 0x0a0d, 0x0909, 0x6572, 0x7574, 0x6e72, 0x4920,
0x2e6e, 0x6944, 0x6666, 0x7375, 0x3b65, 0x0a0d, 0x7d09, 0x0a0d, 0x2a09,
0x0d2f, 0x7d0a, 0x0a0d, 0x0a0d, 0x0a0d, 0x2f2f, 0x2a20, 0x2a2a, 0x2a2a,
0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a,
0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a,
0x2a2a, 0x2a2a, 0x0d2a, 0x2f0a, 0x202f, 0xd7c5, 0xa9c5, 0xd0b4, 0x0a0d,
0x2f2f, 0x2a20, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a,
0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a,
0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x0d2a, 0x740a, 0x6365,
0x6e68, 0x7169, 0x6575, 0x5409, 0x6853, 0x6461, 0x7265, 0x0a0d, 0x0d7b,
0x090a, 0x6170, 0x7373, 0x7020, 0x0d30, 0x090a, 0x0d7b, 0x090a, 0x5609,
0x7265, 0x6574, 0x5378, 0x6168, 0x6564, 0x2072, 0x203d, 0x6f63, 0x706d,
0x6c69, 0x2065, 0x7376, 0x315f, 0x315f, 0x5620, 0x5f53, 0x6f47, 0x7275,
0x7561, 0x2864, 0x3b29, 0x0a0d, 0x0909, 0x6950, 0x6578, 0x536c, 0x6168,
0x6564, 0x2072, 0x3d20, 0x4e20, 0x4c55, 0x3b4c, 0x0a0d, 0x0a0d, 0x0909,
0x6f46, 0x4567, 0x616e, 0x6c62, 0x2065, 0x203d, 0x7274, 0x6575, 0x093b,
0x0909, 0x2f2f, 0xc620, 0xb1f7, 0xbbd7, 0xbfe7, 0x0deb, 0x200a, 0x2020,
0x2020, 0x2020, 0x4620, 0x676f, 0x6556, 0x7472, 0x7865, 0x6f4d, 0x6564,
0x3d20, 0x4c20, 0x6e69, 0x6165, 0x3b72, 0x0909, 0x2f2f, 0xbc20, 0xc7b1,
0x20fc, 0xf7c6, 0xd7b1, 0x0a0d, 0x0a0d, 0x2009, 0x2020, 0x4120, 0x6464,
0x6572, 0x7373, 0x5b55, 0x5d30, 0x3d20, 0x5720, 0x6172, 0x3b70, 0x0a0d,
0x2009, 0x2020, 0x4120, 0x6464, 0x6572, 0x7373, 0x5b56, 0x5d30, 0x3d20,
0x5720, 0x6172, 0x3b70, 0x0a0d, 0x7d09, 0x0a0d, 0x0a0d, 0x7009, 0x7361,
0x2073, 0x3170, 0x0a0d, 0x7b09, 0x0a0d, 0x0909, 0x6556, 0x7472, 0x7865,
0x6853, 0x6461, 0x7265, 0x3d20, 0x6320, 0x6d6f, 0x6970, 0x656c, 0x7620,
0x5f73, 0x5f31, 0x2031, 0x5356, 0x535f, 0x4550, 0x2843, 0x3b29, 0x0a0d,
0x0909, 0x6950, 0x6578, 0x536c, 0x6168, 0x6564, 0x2072, 0x3d20, 0x6320,
0x6d6f, 0x6970, 0x656c, 0x7020, 0x5f73, 0x5f32, 0x2030, 0x5350, 0x535f,
0x4550, 0x2843, 0x3b29, 0x0a0d, 0x0a0d, 0x0909, 0x6f46, 0x4567, 0x616e,
0x6c62, 0x2065, 0x203d, 0x7274, 0x6575, 0x093b, 0x0909, 0x2f2f, 0xc620,
0xb1f7, 0xbbd7, 0xbfe7, 0x0deb, 0x200a, 0x2020, 0x2020, 0x2020, 0x4620,
0x676f, 0x6556, 0x7472, 0x7865, 0x6f4d, 0x6564, 0x3d20, 0x4c20, 0x6e69,
0x6165, 0x3b72, 0x0909, 0x2f2f, 0xbc20, 0xc7b1, 0x20fc, 0xf7c6, 0xd7b1,
0x0a0d, 0x0909, 0x0a0d, 0x2009, 0x2020, 0x4120, 0x6464, 0x6572, 0x7373,
0x5b55, 0x5d30, 0x3d20, 0x5720, 0x6172, 0x3b70, 0x0a0d, 0x2009, 0x2020,
0x4120, 0x6464, 0x6572, 0x7373, 0x5b56, 0x5d30, 0x3d20, 0x5720, 0x6172,
0x3b70, 0x0a0d, 0x7d09, 0x0a0d, 0x7009, 0x7361, 0x2073, 0x3270, 0x0a0d,
0x7b09, 0x0a0d, 0x0909, 0x6556, 0x7472, 0x7865, 0x6853, 0x6461, 0x7265,
0x3d20, 0x6320, 0x6d6f, 0x6970, 0x656c, 0x7620, 0x5f73, 0x5f31, 0x2031,
0x5356, 0x535f, 0x4550, 0x2843, 0x3b29, 0x0a0d, 0x0909, 0x6950, 0x6578,
0x536c, 0x6168, 0x6564, 0x2072, 0x3d20, 0x6320, 0x6d6f, 0x6970, 0x656c,
0x7020, 0x5f73, 0x5f32, 0x2030, 0x5350, 0x535f, 0x4550, 0x5f43, 0x4c41,
0x4850, 0x2841, 0x3b29, 0x0a0d, 0x0a0d, 0x0909, 0x6f46, 0x4567, 0x616e,
0x6c62, 0x2065, 0x203d, 0x7274, 0x6575, 0x093b, 0x0909, 0x2f2f, 0xc620,
0xb1f7, 0xbbd7, 0xbfe7, 0x0deb, 0x200a, 0x2020, 0x2020, 0x2020, 0x4620,
0x676f, 0x6556, 0x7472, 0x7865, 0x6f4d, 0x6564, 0x3d20, 0x4c20, 0x6e69,
0x6165, 0x3b72, 0x0909, 0x2f2f, 0xbc20, 0xc7b1, 0x20fc, 0xf7c6, 0xd7b1,
0x0a0d, 0x0a0d, 0x0909, 0x6c41, 0x6870, 0x4261, 0x656c, 0x646e, 0x6e45,
0x6261, 0x656c, 0x3d20, 0x5420, 0x5552, 0x3b45, 0x0a0d, 0x0909, 0x7253,
0x4263, 0x656c, 0x646e, 0x2020, 0x203d, 0x5253, 0x4343, 0x4c4f, 0x524f,
0x0d3b, 0x090a, 0x4409, 0x7365, 0x4274, 0x656c, 0x646e, 0x3d20, 0x4920,
0x564e, 0x5253, 0x4343, 0x4c4f, 0x524f, 0x0d3b, 0x090a, 0x4309, 0x6c75,
0x4d6c, 0x646f, 0x2065, 0x3d20, 0x4e20, 0x4e4f, 0x3b45, 0x0a0d, 0x0a0d,
0x2009, 0x2020, 0x4120, 0x6464, 0x6572, 0x7373, 0x5b55, 0x5d30, 0x3d20,
0x5720, 0x6172, 0x3b70, 0x0a0d, 0x2009, 0x2020, 0x4120, 0x6464, 0x6572,
0x7373, 0x5b56, 0x5d30, 0x3d20, 0x5720, 0x6172, 0x3b70, 0x0a0d, 0x7d09,
0x0a0d, 0x0a0d, 0x7009, 0x7361, 0x2073, 0x3370, 0x0a0d, 0x7b09, 0x0a0d,
0x0909, 0x6556, 0x7472, 0x7865, 0x6853, 0x6461, 0x7265, 0x3d20, 0x6320,
0x6d6f, 0x6970, 0x656c, 0x7620, 0x5f73, 0x5f31, 0x2031, 0x5356, 0x535f,
0x696b, 0x426e, 0x7361, 0x6369, 0x2928, 0x0d3b, 0x090a, 0x5009, 0x7869,
0x6c65, 0x6853, 0x6461, 0x7265, 0x2020, 0x203d, 0x554e, 0x4c4c, 0x0d3b,
0x090a, 0x0d09, 0x090a, 0x4609, 0x676f, 0x6e45, 0x6261, 0x656c, 0x3d20,
0x7420, 0x7572, 0x3b65, 0x0909, 0x2f09, 0x202f, 0xf7c6, 0xd7b1, 0xe7bb,
0xebbf, 0x0a0d, 0x2020, 0x2020, 0x2020, 0x2020, 0x6f46, 0x5667, 0x7265,
0x6574, 0x4d78, 0x646f, 0x2065, 0x203d, 0x694c, 0x656e, 0x7261, 0x093b,
0x2f09, 0x202f, 0xb1bc, 0xfcc7, 0xc620, 0xb1f7, 0x0dd7, 0x090a, 0x0d7d,
0x0d0a, 0x090a, 0x6170, 0x7373, 0x7020, 0x0d34, 0x090a, 0x0d7b, 0x090a,
0x5609, 0x7265, 0x6574, 0x5378, 0x6168, 0x6564, 0x2072, 0x203d, 0x6f63,
0x706d, 0x6c69, 0x2065, 0x7376, 0x315f, 0x315f, 0x5620, 0x5f53, 0x6b53,
0x6e69, 0x5053, 0x4345, 0x455f, 0x564e, 0x2928, 0x0d3b, 0x090a, 0x5009,
0x7869, 0x6c65, 0x6853, 0x6461, 0x7265, 0x2020, 0x203d, 0x6f63, 0x706d,
0x6c69, 0x2065, 0x7370, 0x325f, 0x305f, 0x5020, 0x5f53, 0x6b53, 0x6e69,
0x5053, 0x4345, 0x455f, 0x564e, 0x2928, 0x0d3b, 0x0d0a, 0x090a, 0x4609,
0x676f, 0x6e45, 0x6261, 0x656c, 0x3d20, 0x7420, 0x7572, 0x3b65, 0x0909,
0x2f09, 0x202f, 0xf7c6, 0xd7b1, 0xe7bb, 0xebbf, 0x0a0d, 0x2020, 0x2020,
0x2020, 0x2020, 0x6f46, 0x5667, 0x7265, 0x6574, 0x4d78, 0x646f, 0x2065,
0x203d, 0x694c, 0x656e, 0x7261, 0x093b, 0x2f09, 0x202f, 0xb1bc, 0xfcc7,
0xc620, 0xb1f7, 0x0dd7, 0x0d0a, 0x090a, 0x2020, 0x2020, 0x6441, 0x7264,
0x7365, 0x5573, 0x305b, 0x205d, 0x203d, 0x7257, 0x7061, 0x0d3b, 0x090a,
0x2020, 0x2020, 0x6441, 0x7264, 0x7365, 0x5673, 0x305b, 0x205d, 0x203d,
0x7257, 0x7061, 0x0d3b, 0x090a, 0x0d7d, 0x0d0a, 0x090a, 0x6170, 0x7373,
0x7020, 0x0d35, 0x090a, 0x0d7b, 0x090a, 0x5609, 0x7265, 0x6574, 0x5378,
0x6168, 0x6564, 0x2072, 0x203d, 0x6f63, 0x706d, 0x6c69, 0x2065, 0x7376,
0x315f, 0x315f, 0x5620, 0x5f53, 0x6b53, 0x6e69, 0x5053, 0x4345, 0x455f,
0x564e, 0x2928, 0x0d3b, 0x090a, 0x5009, 0x7869, 0x6c65, 0x6853, 0x6461,
0x7265, 0x2020, 0x203d, 0x6f63, 0x706d, 0x6c69, 0x2065, 0x7370, 0x325f,
0x305f, 0x5020, 0x5f53, 0x6b53, 0x6e69, 0x5053, 0x4345, 0x455f, 0x564e,
0x415f, 0x5048, 0x4148, 0x2928, 0x0d3b, 0x090a, 0x0d09, 0x090a, 0x4609,
0x676f, 0x6e45, 0x6261, 0x656c, 0x3d20, 0x7420, 0x7572, 0x3b65, 0x0909,
0x2f09, 0x202f, 0xf7c6, 0xd7b1, 0xe7bb, 0xebbf, 0x0a0d, 0x2020, 0x2020,
0x2020, 0x2020, 0x6f46, 0x5667, 0x7265, 0x6574, 0x4d78, 0x646f, 0x2065,
0x203d, 0x694c, 0x656e, 0x7261, 0x093b, 0x2f09, 0x202f, 0xb1bc, 0xfcc7,
0xc620, 0xb1f7, 0x0dd7, 0x090a, 0x4309, 0x6c75, 0x4d6c, 0x646f, 0x2065,
0x3d20, 0x4e20, 0x4e4f, 0x3b45, 0x0a0d, 0x0a0d, 0x0909, 0x6c41, 0x6870,
0x4261, 0x656c, 0x646e, 0x6e45, 0x6261, 0x656c, 0x3d20, 0x5420, 0x5552,
0x3b45, 0x0a0d, 0x0909, 0x7253, 0x4263, 0x656c, 0x646e, 0x3d20, 0x5320,
0x4352, 0x4f43, 0x4f4c, 0x3b52, 0x0a0d, 0x0909, 0x6544, 0x7473,
/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//
IDC_BASE CURSOR DISCARDABLE "res\\curBase.cur"
IDC_ATTACK CURSOR DISCARDABLE "res\\curAttack.cur"
IDC_NPC CURSOR DISCARDABLE "res\\curNPC.cur"
IDC_CONTROL CURSOR DISCARDABLE "res\\curControl.cur"
IDC_GETITEM CURSOR DISCARDABLE "res\\curGetItem.cur"
IDC_SELECT CURSOR DISCARDABLE "res\\curSelect.cur"
IDC_CAMERA CURSOR DISCARDABLE "res\\curCamera.cur"
IDC_DELAY CURSOR DISCARDABLE "res\\curDelay.cur"
IDC_RESIZE_HORI CURSOR DISCARDABLE "res\\hori.cur"
IDC_RESIZE_VERT CURSOR DISCARDABLE "res\\resize_h.cur"
IDC_RESIZE_HV1 CURSOR DISCARDABLE "res\\cur00001.cur"
IDC_RESIZE_HV2 CURSOR DISCARDABLE "res\\cur00002.cur"
IDC_EDIT CURSOR DISCARDABLE "res\\edit.cur"
IDC_CURSOR2 CURSOR DISCARDABLE "res\\cursor2.cur"
IDC_CURSOR3 CURSOR DISCARDABLE "res\\cursor3.cur"
IDC_DOOR CURSOR DISCARDABLE "res\\curDoor.cur"
IDC_GATE CURSOR DISCARDABLE "res\\curGate.cur"
IDC_LEVER CURSOR DISCARDABLE "res\\curLever.cur"
IDC_HAMMER CURSOR DISCARDABLE "res\\anvil.cur"
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON1 ICON DISCARDABLE "res\\Omg.ico"
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_CONSOLE_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 197
TOPMARGIN, 7
BOTTOMMARGIN, 314
END
IDD_DIALOG4, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 180
TOPMARGIN, 7
BOTTOMMARGIN, 87
END
IDD_DIALOG5, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 180
TOPMARGIN, 7
BOTTOMMARGIN, 87
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_SERVER_IP "127.0.0.1"
IDS_LANG "1"
IDS_SUBLANG "0"
IDS_ENCRYPTPWD "1"
IDS_FAKEFULLMODE "1"
IDS_MSGVER "00000000" //cuvvvie
IDS_CACHE_PORT "15400" //cuvvvie
IDS_SHOUTLIMIT_SECOND "5000"
IDS_SHOUTLIMIT_COUNT "5"
IDS_CODEPAGE "1252"
IDS_2ND_PASSWORD "0" //spikenbror
END
#endif // Korean resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_SELECTDEVICE DIALOG DISCARDABLE 0, 0, 267, 138
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Select Device"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Rendering device",IDC_STATIC,5,5,200,45
LTEXT "&Adapter:",IDC_STATIC,22,17,65,10,SS_CENTERIM AGE
COMBOBOX IDC_ADAPTER_COMBO,90,15,105,100,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
LTEXT "&Device:",IDC_STATIC,22,32,65,10,SS_CENTERIMA GE
COMBOBOX IDC_DEVICE_COMBO,90,30,105,100,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
GROUPBOX "Rendering mode",IDC_STATIC,5,52,200,45
CONTROL "Use desktop &window",IDC_WINDOW,"Button",
BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,10,62,85,15
CONTROL "&Fullscreen mode:",IDC_FULLSCREEN,"Button",
BS_AUTORADIOBUTTON,10,77,75,15
COMBOBOX IDC_FULLSCREENMODES_COMBO,90,77,105,204,CBS_DROPDO WNLIST |
WS_VSCROLL | WS_GROUP | WS_TABSTOP
GROUPBOX "Multisample",IDC_STATIC,5,101,200,28
LTEXT "&Multisample Type:",IDC_STATIC,22,113,62,10,
SS_CENTERIMAGE
COMBOBOX IDC_MULTISAMPLE_COMBO,90,111,105,100,CBS_DROPDOWNL IST |
WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "OK",IDOK,210,10,50,14
PUSHBUTTON "Cancel",IDCANCEL,210,30,50,14
END
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_MAIN_ICON ICON DISCARDABLE "res\\main_ico.ico"
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_SELECTDEVICE, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 259
TOPMARGIN, 7
END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#define IDC_STATIC -1\r\n"
"#include <windows.h>\r\n"
"\r\n"
"\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//
IDR_MAIN_ACCEL ACCELERATORS DISCARDABLE
BEGIN
VK_RETURN, IDM_TOGGLEFULLSCREEN, VIRTKEY, ALT, NOINVERT
"X", IDM_EXIT, VIRTKEY, ALT, NOINVERT
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
#define __VERSION_COMMON_H__
#define __MAINSERVER
#define __FIX_CHEAT
#define __GUILD_COLOR
#define __VER 15 // 15차
#if !defined( __TESTSERVER ) && !defined( __MAINSERVER )
#define __INTERNALSERVER
#endif
#if (_MSC_VER > 1200)
#define __VS2003 // 컴파일러변경.net
#endif
#define NO_GAMEGUARD //cuvvvie
#define __TRANSFER_ERROR_TEXT
#define __CRC
#define __PROTOCOL0910
#define __PROTOCOL1021
#define __INFO_SOCKLIB0516 // 네트워크 에러얻기
#define __S1108_BACK_END_SYSTEM // Trans, World, Neuz : 백앤드시스템
#define __THROUGHPORTAL0810 // 웹에 의한 실행
#define __TWN_LOGIN0816 // 대만 로그인 프로토콜 변경 // 클라/인증
#define __FIX_WND_1109 // 창 생성 시 부모창 지정 오류 수정
#define __EVENT_1101 // 출첵 이벤트
#define __EVE_NEWYEAR // 신년 효과
#define __CHEAT_ENGINE_BLOCK // bloquear CE
#define __CEFIX // bloquear CE Reforcado
#define __PETFILTER
#define __S_SERVER_UNIFY // 서버 통합 Neuz, World
#define __LANG_IME_0327 // 국가별 ime표시 창 출력 구분
#define __STL_0402 // stl
#define __NEWYEARDAY_EVENT_COUPON // 설 이벤트 - 헤어˜? 성형 무료이용권 관련.
// 해외 6차 적용
#define __LANG_1013 // 해외 버전 신규 추가 스크립트
#define __ITEMDROPRATE // 이벤트 아이템 드롭률 조정
// 10
#define __TRADESYS // 교환 아이템 스크립트(이벤트, 퀘스트, ... ) Neuz, World
#define __EVE_BALLOON // 풍선 이벤트 관련
#define __CSC_GAME_GRADE // 게임물등급관련 채팅창 알림 및 이미지 변경.
#define __PK_PVP_SKILL_REGION // PK금지구역에서 악행 스킬은 PVP상대에게만 가능하도록..
#define __EVENT_1101_2 // 출첵 이벤트 64비트 변경
#define __S_RECOMMEND_EVE // 추천 이벤트 Neuz, Trans, World
#define __EVE_MINIGAME // Mini Game 4종 이벤트 추가 관련.
#define __S_ADD_EXP // EXP_S 아이템 생성
#define __RULE_0615 // 명명 규칙 정리
#define __FILTER_0705 // 필터링 규칙 변경
#define __S_BUG_GC // 길드대전 신청시 같은 금액을 신청하면 길드아이디로 쇼트 되서 순위가 바뀌는 문제 수정( map -> vector )
#define __S_ADD_RESTATE // 상용화 아이템 생성( 리스테트 힘, 민첩, 체력, 지능 )
#define __PROP_0827 // 아이템 프로퍼티 적용 파라미터 확장
#define __PKSERVER_USE_ANGEL // PK서버에서만 엔젤관련 아이템,버프 사용
#define __CSC_ENCHANT_EFFECT_2 // 기존 이펙트 + 향상된 이펙트
//11차
// #define __MA_VER11_02 // 수표 기능 페린 관련
// #define __MA_VER11_03 // neuz극단창(B)에서 극단원이 멀리 떨어져 있어도 레벨이 표시 되도록
// #define __MA_VER11_04 // 길드 창고 로그 기능 world,database,neuz
// #define __MA_VER11_05 // 케릭터 봉인 거래 기능 world,database,neuz
// #define __MA_VER11_06 // 확율스킬 효과수정 world,neuz
// #define __CSC_VER11_1 // <레벨??> 삭제, 채팅창 수정, 페냐거래 취소버튼 삭제
// #define __CSC_VER11_2 // 타겟 표시 방법 변경
// #define __CSC_VER11_3 // 칩으로 상점 이용 하기 (길드 대전 관련)
// #define __CSC_VER11_4 // 메신저창 개선
// #define __CSC_VER11_5 // 태스크바 확장
// #define __GUILDCOMBATCHIP // 길드대전 칩보상 및 칩을 통한 상점 이용
// #define __GUILD_COMBAT_1TO1 // 일대일 길드 대전
// #define __GUILD_BANK_LOG // 길드뱅크 로그창 추가
// #define __EXPITEM_TOOLTIP_CHANGE // 경험치 아이템 표기 방법 변경
// #define __REMOVE_ENDURANCE // 아이템 내구력 개념 제거
// #define __PIERCING_REMOVE // 피어싱 옵션 제거
// #define __CHIPI_071210 // 기간제 아이템 지속시간 초단위 표기
#define __EVENTLUA_COUPON // 쿠폰 이벤트
#define __NOLIMIT_RIDE_ITEM // 레벨 제한 없는 비행체 아이템
#define __NPC_BUFF // NPC를 통해 버프받기
// #define __SYS_POCKET // 주머니
// #define __SYS_COLLECTING // 채집 시스템
// #define __SYS_IDENTIFY // 각성, 축복
// #define __FIX_ROTATE // 비스트에서 발견된 오류 수정
// #define __ADD_ZOOMOPT // 줌옵션 추가
// #define __MOD_VENDOR // 개인상점 개선
// #define __FIX_COLLISION // 충돌 문제 수정
// #define __FIX_PICKING // 피킹 문제 수정
// #define __CAPTURE_JPG // JPG포맷으로 캡쳐
#define __SYS_TICKET // 입장권
// #define __SYS_PLAYER_DATA // 캐릭터 정보 통합
#define __HACK_1023 // 리소스 변조 // 날것 속도, 무기 공격 속도
#define __RT_1025 // 메신저
#define __VENDOR_1106 // 개인상점 허용 문자
#define __JEFF_11
#define __JEFF_9_20 // 비행 시간을 침묵 시간으로 전용
#define __JEFF_11_4 // 아레나
#define __JEFF_11_5 // 메모리 누수
#define __JEFF_11_6 // 바보 몬스터
#define __DST_GIFTBOX // 착용 아이템에 기프트 박스 기능 추가
#define __SFX_OPT // 이펙트(파티클) 최적화 관련
//#define __PERF_0229
#define __HELP_BUG_FIX // 도움말관련 버그 수정 (도움말 한개만 띄우기 인스턴스 관리)
#define __CHIPI_DYO // NPC를 특정국가에서만 출력할 수 있게 character.inc에 설정
// 12차
// #define __SECRET_ROOM // 비밀의 방
// #define __TAX // 세금
// #define __CSC_VER12_1 // 개인상점 중 플레이어 살펴보기 메뉴 가능하도록 수정 & 살펴보기 창 유지하기
// #define __CSC_VER12_2 // 길드 창의 멤버 텝에 항목별 정렬이 가능하도록 추가
// #define __CSC_VER12_3 // 퀘스트가 많을 경우 퀘스트 항목이 잘리는 현상 때문에 대화창 늘림
// #define __CSC_VER12_4 // 피어싱 제거 창 개선 및 얼터멋 보석 제거 창 추가
// #define __CSC_VER12_5 // 펫 알 변환 기능 추가
// #define __HEAVEN_TOWER // 심연의 탑
// #define __EXT_PIERCING // 무기 피어싱
// #define __NEW_SUMMON_RULE // 몬스터 소환 규칙 변경
// #define __MOD_TUTORIAL // 튜토리얼 개선
// #define __LORD // 군주
// #define __PET_0519 // 펫 각성
// #define __J12_0 // 각성, 축복 가능 파츠 추가
// #define __UPDATE_OPT // 옵션창 개선
// #define __CAM_FAST_RECOVER // 카메라 복원속도 증가
// #define __JHMA_VER12_1 //12차 극단유료아이템
// #define __ITEMCREATEMON_S0602 // 몬스터 생성 Neuz, World
// #define __PARSKILL1001 //12차 파스킬 아이템 수정 world,core,neuz
// #define __LEAK_0827
// 13차
// #define __EXT_ENCHANT // 제련 확장(속성, 일반)
// #define __RAINBOW_RACE // 레인보우 레이스
#define __HOUSING // 하우징 시스템
// #define __QUEST_HELPER // 퀘스트 NPC위치 알림.
// #define __CHIPI_QUESTITEM_FLAG
// #define __RENEW_CHARINFO // 캐릭터정보창 리뉴얼
// #define __HONORABLE_TITLE // 달인
#define __MAX_BUY_ITEM9999 // 화살포스터구입갯수9999개
// #define __REMOVE_JOINPARTYMEMBER_ANI // 파티맴버조인시 애니 빼기
// #define __CSC_VER13_1 // WorldMap 몬스터 표시
// #define __CSC_VER13_2 // 커플 시스템
// #define __COUPLE_1117 // 커플 시스템
// #define __COUPLE_1202 // 커플 보상
#define __LAYER_1020 // __LAYER_1015 테스트
#define __AZRIA_1023 // 입장권 계층 적용
#define __PET_1024 // 펫 작명
#define __BUFF_1107
#define __SYNC_1217 // 비동기 수정(필리핀 보고)
#define __SYS_ITEMTRANSY // NPC메뉴 아이템 트렌지 기능
#define __SPEED_SYNC_0108 // ResetDestParam speed 수정 느려지게 보이는것 수정 타유저의 초기스피드비동기도 수정 예정
#define __PARTY_DEBUG_0129 // 극단장 튕기는 현상 디버깅 neuz
#define __FUNNY_COIN // 퍼니 코인
#define __GPAUTH
#define __GPAUTH_01
#define __GPAUTH_02
#define __EUROPE_0514
#define __WINDOW_INTERFACE_BUG // 월드 이동 상황에서 아이템 걸린 윈도우 창 띄워져 있으면 클라이언트 크래쉬되는 문제 수정
#define __MAP_SECURITY // 맵툴로 변조한 맵 검사
// 14차
#define __NEW_CONTINENT // 14차 신규대륙 하르모닌 추가
#define __SMELT_SAFETY // 14차 안전제련
#define __INSTANCE_DUNGEON // 14차 인스턴스 던전
#define __EQUIP_BIND // 장착아이템 착용시 귀속
#define __EXT_ATTRIBUTE // 속성제련 공식 확장 및 변경
#define __NEW_ITEM_LIMIT_LEVEL // 아이템 착용레벨 규칙 변경(MASTER, HERO도 레벨 적용을 받고 하위 클래스 무기는 무조건 장착 가능)
#define __WATER_EXT // 물 표현 확장 (물 텍스쳐의 종류 및 프레임속도 변경 추가)
#define __WND_EDIT_NUMBER_MODE // 에디트 컨트롤 숫자만 입력받게 하는 모드
#define __SHIFT_KEY_CORRECTION // 쉬프트 키 입력 문제 수정
#define __STATIC_ALIGN // 스태틱 컨트롤에 정교한 정렬 기능 추가
#define __ITEM_DROP_SOUND // 아이템 드롭 시 효과음 스크립트로 처리
#define __JOB_TEXT // 마스터, 히어로 관련 아이템에 '필요 직업' 텍스트 출력되도록 수정
#define __RESTATE_CONFIRM // 리스테트 사용 시, 확인 창 출력
#define __PREVENTION_TOOLTIP_BUG // 프리벤션 툴팁에 의미 없는 텍스트 출력되는 문제 수정
#define __DROP_CONFIRM_BUG // 아이템 관련 확인 창이 열린 상태에서 일어나는 각종 오류 수정
#define __CLOUD_ANIMATION_BUG // 구름 애니메이션이 특정 영역에서만 수행되는 문제 수정
#define __BUFF_CRASH // 버프 렌더링 관련하여 클라이언트 크래쉬되는 문제 수정
#define __BS_FIX_SHADOW_ONOBJECT // 오브젝트 그림자 리시버 조건검사 설정 ( 주인공 위주, 인던 천정 그림자 제거 )
#define __BS_FIX_HAIR_AMBIENT // 캐릭터 헤어 ambient 조정 ( 인던에서 머리카락 색깔 까맣게 나오는 문제 수정 )
#define __BALLOON_CODE_IMPROVEMENT // 풍선 관련 코드 개선
#define __WING_ITEM // 날개 아이템
#define __USE_SOUND_LIB_FMOD // use FMod sound lib
#define __PCBANG // PC방 혜택
// end 14th
// 15차 ZU TEST ZWECKEN AUSDEKLARIERUNG ENTFERNT!
#define __DYNAMIC_MPU // 변경가능한 MPU !!
#define __BOUND_BOX_COLLISION // 바운드 박스 충돌 루틴 개선
#define __BS_CHANGING_ENVIR // 대륙별 환경 변경 ( light, fog, sky, weather, 24hours light ... ) <<< ONLY CLIENT!!!! >>>
#define __USING_CONTINENT_DATA // 대륙 경계데이터 외부에서 긁어옴!
#define __IMPROVE_QUEST_INTERFACE // 15차 향상된 퀘스트 인터페이스 시스템
#define __IMPROVE_SYSTEM_VER15 // 15차 개선 사항
#define __15TH_INSTANCE_DUNGEON // 15차 인스턴스 던전
#define __PETVIS // 15차 비스펫
#define __GUILD_HOUSE // 15차 길드하우스
#define __TELEPORTER // 15차 텔레포터
#define __FIND_OBJ_INSIGHT // 시야거리 안의 동적오브젝트 출력( 미니맵 오른쪽버튼 클릭 )
#define __HERO129_VER15 // 15차 히어로 레벨확장
#define __MUSIC2 // 마일즈 7.2g ver 업데이트 ( OGG 재생 가능 버젼 ) 차후 Lib업데이트시에 같이 풀어줘야함.
#define __NEW_CONTINENT15 // 추가 대륙 ( 협곡 )
#define __BS_BBOX_ABS_EXTENT // BBOX 길이 절대값으로 수정
#define __CAMPUS // 15차 사제 시스템
#define __BS_FIXED_KNOCKBACK // 넉백시 상태 꼬임현상 수정
#define __BS_FIXED_EQUIPMOTION // 아이템 장/탈 착중 기존모션이 유지되는현상 수정
#define __15_5TH_ELEMENTAL_SMELT_SAFETY // 15.5차 속성 안전 제련 추가
#define __2ND_PASSWORD_SYSTEM // 2차 비밀번호 시스템
// end 15th
#define __QUIZ // 퀴즈 이벤트 시스템
#define __EVENTLUA_RAIN // 장마 이벤트 -> 루아로 변경
#define __EVENTLUA_SNOW // 강설 이벤트
#define __ADD_RESTATE_LOW // 상용화 아이템 생성( 리스테트 하급 힘, 민첩, 체력, 지능 )
#define __YS_CHATTING_BLOCKING_SYSTEM // 캐릭터 채팅 차단 시스템
#define __BAN_CHATTING_SYSTEM // 연속 채팅 금지 시스템
#define __ENCRYPT_PASSWORD // mulcom BEGIN100218 패스워드 암호화
// #define __CERTIFIER_COLLECTING_SYSTEM // 인증 서버 수집 시스템
#define __DELETE_CHAR_CHANGE_KEY_VALUE // 버디버디 i_PIN 도입으로 인한 캐릭터삭제 키값 변경(국내, 주민번호 -> 2차비번)
#define __BS_ADJUST_SYNC // mover간 동기화 개선
#define __SHOP_COST_RATE // 상점 가격 조정
// #define __NEW_WEB_BOX // 새로운 웹 표현 창
#define __PROTECT_AWAKE //각성보호
#define __MAIL_REQUESTING_BOX // 메일 요청 박스
#define __BS_SAFE_WORLD_DELETE // CWorld::Process에서 safe delete obj( sfx 류로 확인댐 )
// #define __GAME_GRADE_SYSTEM // 게임물 등급 표시 시스템
#define __BS_FIX_ARRIVEPOS_ALGO // 마우스 이동시 도착 검사루틴 개선 ( 정“‡향 축으로 한곳만 도착했을때 멈추는 문제가있었음 )
#define __BS_ITEM_UNLIMITEDTIME // 아이템 유지시간 ( 999999999 >= 일경우 무제한 표기 )
#define __ENVIRONMENT_EFFECT
// 8.5차
#if defined(__INTERNALSERVER) // 내부 사무실 테스트서버
// #define __RULE_0615
#undef __TRANSFER_ERROR_TEXT
#define __CPU_UTILDOWN_060502 // CPU 사용률 감소작업
#define __SLIDE_060502 // 땅으로 꺼지는 문제 수정
#define __GUILDVOTE // 길드 투표
#define __IAOBJ0622 // 상대 목표 좌표 전송 // 월드, 뉴즈
#define __YNOTICE_UNI1026 // 공지사항 유니코드 지원
// #define __YENV
// #define __YENV_WITHOUT_BUMP
#define __SKILL0517 // 스킬 레벨 파라미터
#define __YAIMONSTER_EX // AI기능 추가 - Neuz, World
// #define __Y_INTERFACE_VER3 // 인터페이스 버전 3.0 - Neuz
#define __VERIFY_MEMPOOL
// #define __S_NEW_SKILL_2 // 스킬 개선 패킷 전송 Neuz, World, Trans
#define __Y_ROTXZ // 회전 추가 Neuz, World
#define __Y_PATROL // 정찰...Neuz. World
#define __Y_CHARACTER_TEXT // 캐릭터 정보창 프로그램 텍스트 출력..Neuz
#define __Y_RENDER_NAME_OPTION // 이름 출력 선택 UI.Neuz
#define __V060721_TEXTDRAG
#define __Y_MAPVIEW_EX
#define __Y_BEAUTY_SHOP_CHARGE // 뷰티샵, 개인상점 유료아이템화..Neuz, World
// #define __EVENT_FALL // 단풍 이벤트 - 모델교체 Neuz, World
// #define __LANG_1013 // 해외 버전 추가 스크립트
// #define __KWCSC_UPDATE // 스킬 발동 관련 문제 수정 Neuz
// #define __CSC_VER8_1 // 8차 'T'키 사용, 상대방 레벨 안보이기, 화면 모든 창 On/Off Neuz
// #define __CSC_VER8_2 // 8차 파티창 관련 적용 Neuz
// #define __JEFF_VER_8 // 8차 작업
// #define __Y_FLAG_SKILL_BUFF // 팻, 변신 아이템 토글버프 적용... Neuz, World
// #define __Y_GAMMA_CONTROL_8 // 밝기, 감마, 명암 조절 Neuz
// #define __Y_CHAT_SYSTEM_8 // 시스템 메세지 윈도우화... Neuz
// #define __Y_EYE_FLASH_8 // 눈깜박거리기... Neuz
// #define __Y_CAMERA_SLOW_8 // 8차 키/마우스 X축 회전시 보간으로 회전하기..Neuz
// #define __Y_MAX_LEVEL_8 // 만랩 120으로 조정... Neuz, World, Trans
// #define __CSC_VER8_3 // 8차 버프창 관련 적용, Key Down시 스킬발동 1.5초간 딜레이로 지속되게 변경 Neuz
// #define __CSC_VER8_4 // 8차 헤어샵관련 수정 및 성형수술 기능 추가.
// #define __JHMA_VER_8_1 // 8차 게임내돈드롭금지 Neuz, World
// #define __JHMA_VER_8_2 // 8차 게임내아이템판매가격제한풀기 Neuz, World
#define __FIX_WND_1109 // 자식 창 초기화 오류 수정
// #define __JHMA_VER_8_3 // 8차 ctrl 자동공격기능 삭제 Neuz
// #define __JHMA_VER_8_4 // 8차 타겟클릭자동공격 이모티콘 Neuz
// #define __JHMA_VER_8_5 // 8차 스킬경험치다운변경 Neuz, World
// #define __JHMA_VER_8_7 // 8차 듀얼존에 관계없이 PVP가능하게함 Neuz, World
// #define __CSC_VER8_5 // 8차 엔젤 소환 Neuz, World, Trans
#define __TRAFIC_1218 // 서버에서 보낸 패킷 정보
#define __Y_HAIR_BUG_FIX
#define __FOR_PROLOGUE_UPDATE // 태국,대만,미국,독일 Prologue추가
// #define __NEWYEARDAY_EVENT_COUPON // 설 이벤트 - 헤어˜? 성형 무료이용권 관련.
#define __TRAFIC_1215 // 전송량 감소
// #define __Y_NEW_ENCHANT // 제련 아이템 변경, Neuz, World
// #define __ULTIMATE // 9,10차 제련
// #define __LEGEND // 10차 전승시스템 Neuz, World, Trans
// #define __CSC_VER9_1 // 9차 전승관련 Clienet - Neuz
// #define __PET_0410 // 9, 10차 펫
#define __HACK_0516 // 미국 해킹 2차
// #define __AI_0509 // 몬스터 인공지능
// #define __CSC_VER9_RESOLUTION // Wide및 고해상도 추가
// #define __Y_ADV_ENCHANT_EFFECT // 제련 이팩트 향상 버전
// #define __S_9_ADD // 9차 추가분
// #define __RECOVERY10 // 9차 추가 (타격, 피격 10초 후 자동 회복)
// #define __CSC_VER9_2 // 9차 상태창 변경 관련 Neuz, World
// #define __CSC_VER9_3 // 9차 채팅상황에서 Function Key 사용 가능
// #define __CSC_VER9_4 // 클라이언트 구동 시 공백시간에 이미지 추가.
// #define __CSC_VER9_5 // 9차 제련관련 (추가 검광 기능)
// #define __Y_DRAGON_FIRE // 메테오니커 파이어 발사!!!
// #define __LUASCRIPT // 루아 스크립트 사용 (World, Trans, Neuz)
// #define __EVENTLUA // 이벤트 (루아 스크립트 적용) - World, Trans, Neuz
// #define __METEONYKER_0608
// #define __CSC_UPDATE_WORLD3D // World3D Object Culling부분 업데이트
// #define __CSC_VER9_REMOVE_PKSETTING // 옵션 설정 창에서 PK설정 제거 (무조건 Ctrl키 누른 상태에서만 공격)
#define __SECURITY_0628 // ¸®¼O½º ¹oAu AIAo not contained
// #define __INSERT_MAP // 스타트메뉴에 전체지도 메뉴 추가
#define __GLOBAL_COUNT_0705 // CTime::GetTimer
// #define __SKILL_0706 // 대인용 AddSkillProp 컬럼 추가 및 적용
// #define __AI_0711 // 메테오니커 AI 수정
// #define __REMOVE_ATTRIBUTE // 속성제련 제거(10차로 변경)
// #define __CSC_ENCHANT_EFFECT_2 // 기존 이펙트 + 향상된 이펙트
// #define __SYS_TICKET // 입장권
// #define __SYS_PLAYER_DATA // 캐릭터 정보 통합
// #define __HACK_1023 // 리소스 변조 // 날것 속도, 무기 공격 속도
// #define __RT_1025 // 메신저
// #define __LINK_PORTAL // 외부 포탈 연결 시 무인자 처리
// #define __VENDOR_1106 // 개인상점 허용 문자
// #define __JEFF_11
#define __JEFF_11_1
// #define __JEFF_11_4 // 아레나
// #define __JEFF_11_5 // 메모리 누수
// #define __DST_GIFTBOX // 착용 아이템에 기프트 박스 기능 추가
#define __DISABLE_GAMMA_WND // 윈도우 모드에서 감마 조절 불가하게 수정
#define __ATTACH_MODEL // 모델에 다른 모델 붙이기 (날개...)
#define __NEW_PROFILE
#define __VTN_TIMELIMIT // 베트남 플레이 시간 제한
// #define __FLYFF_INITPAGE_EXT
#define __BS_CHECKLEAK // 메모리 누수 탐지및 라인 확인 2009/07/14
#define __BS_ADJUST_COLLISION // 충돌 루틴 개선 ( 2009. 07. 28 )
// #define __BS_PUTNAME_QUESTARROW // 퀘스트 클릭시 보상 NPC 화살표 표현중 이름 추가 ( 09_1228 제거 )
#define __JAPAN_AUTH // 일본 인증 변경(웹인증)
#define __IMPROVE_MAP_SYSTEM // 향상된 지도 시스템
// #define __BS_NO_CREATION_POST // 임시 : 우체통 생성 무시
#undef __VER
#define __VER 15
#define __GUILD_HOUSE_MIDDLE // 길드하우스 중형
#define __BS_ADDOBJATTR_INVISIBLE // CObj Invisible 에 관한 속성추가 --> 16차 예정
#define __BS_DEATH_ACTION // die 상태로 진입시 연출 효과 ( client only )
#define __BS_EFFECT_LUA // 오브젝트 상태별 효과연출 ( Lua base )
#define __BS_ADD_CONTINENT_WEATHER // 대륙 날씨 추가 ( 온난화로 인한 태양날씨, 다른 어떤이유로든 변하지 않음 )
#define __BS_CHANGEABLE_WORLD_SEACLOUD // 변경가능한 월드 바다구름
#elif defined(__TESTSERVER) // 외부 유저 테스트서버
#define NO_GAMEGUARD
#define __CPU_UTILDOWN_060502 // CPU 사용률 감소작업
#define __SLIDE_060502 // 땅으로 꺼지는 문제 수정
#define __GUILDVOTE // 길드 투표
// #define __SKILL0517 // 스킬 레벨 파라미터
#define __Y_CHARACTER_TEXT // 캐릭터 정보창 프로그램 텍스트 출력..Neuz
#define __V060721_TEXTDRAG // 글자에 효과주기
#define __Y_ROTXZ // 회전 추가 Neuz, World
#define __Y_PATROL // 정찰...Neuz. World
#define __Y_BEAUTY_SHOP_CHARGE // 뷰티샵, 개인상점 유료아이템화..Neuz, World
#define __TRAFIC_1215 // 전송량 감소
// #define __ULTIMATE // 9,10차 제련
// #define __LEGEND // 10차 전승시스템 Neuz, World, Trans
// #define __CSC_VER9_1 // 9차 전승관련 Clienet - Neuz
// #define __CSC_VER9_RESOLUTION // Wide및 고해상도 추가
// #define __Y_ADV_ENCHANT_EFFECT // 제련 이팩트 향상 버전
// #define __S_9_ADD // 9차 추가분
// #define __RECOVERY10 // 9차 추가 (타격, 피격 10초 후 자동 회복)
// #define __CSC_VER9_2 // 9차 상태창 변경 관련 Neuz, World
// #define __CSC_VER9_3 // 9차 채팅상황에서 Function Key 사용 가능
// #define __CSC_VER9_4 // 클라이언트 구동 시 공백시간에 이미지 추가.
// #define __CSC_VER9_5 // 9차 제련관련 (추가 검광 기능)
// #define __Y_DRAGON_FIRE // 메테오니커 파이어 발사!!!
#define __HACK_0516 // 미국 해킹 2차
// #define __LUASCRIPT // 루아 스크립트 사용 (World, Trans, Neuz)
// #define __EVENTLUA // 이벤트 (루아 스크립트 적용) - World, Trans, Neuz
// #define __CSC_VER9_REMOVE_PKSETTING // 옵션 설정 창에서 PK설정 제거 (무조건 Ctrl키 누른 상태에서만 공격)
// #define __INSERT_MAP // 스타트메뉴에 전체지도 메뉴 추가
// #define __PET_0410 // 9, 10차 펫
// #define __AI_0509 // 몬스터 인공지능
// #define __METEONYKER_0608
// #define __SKILL_0706 // 대인용 AddSkillProp 컬럼 추가 및 적용
// #define __AI_0711 // 메테오니커 AI 수정
#define __GLOBAL_COUNT_0705 // CTime::GetTimer
// #undef __VER
// #define __VER 11 // 11차
#define __JEFF_11_1
// #define __JEFF_11_4 // 아레나
// #define __JEFF_11_5 // 메모리 누수
// #define __JAPAN_SAKURA // 벗꽃 이벤트
// VER 16 __TESTSERVER begin
#define __GUILD_HOUSE_MIDDLE // 길드하우스 중형
#define __BS_ADDOBJATTR_INVISIBLE // CObj Invisible 에 관한 속성추가 --> 16차 예정
#define __BS_DEATH_ACTION // die 상태로 진입시 연출 효과 ( client only )
// #define __BS_EFFECT_LUA // 오브젝트 상태별 효과연출 ( Lua base )
#define __BS_ADD_CONTINENT_WEATHER // 대륙 날씨 추가 ( 온난화로 인한 태양날씨, 다른 어떤이유로든 변하지 않음 )
#define __BS_CHANGEABLE_WORLD_SEACLOUD // 변경가능한 월드 바다구름
// VER 16 __TESTSERVER end
#elif defined(__MAINSERVER) // 외부 본섭
// #define __TMP_POCKET // 휴대 가방 일시적으로 막기
#define __Y_BEAUTY_SHOP_CHARGE // 뷰티샵, 개인상점 유료아이템화..Neuz, World
#define __TRAFIC_1215
// #define __Y_NEW_ENCHANT // 제련 아이템 변경, Neuz, World
// #define __EVENT_FALL // 단풍
// #define __JAPAN_SAKURA // 벗꽃 이벤트
#define __JEFF_11_1
// #define __RAIN_EVENT // 장마 이벤트(비오는 동안 경험치 2배)
#endif // end - 서버종류별 define
#ifndef NO_GAMEGUARD
#define __NPROTECT_VER 4
#endif
#endif // VERSION_COMMON_H
[/QUOTE]
Certifier/VersionCommon.h - Search Crtl+f = __SECURITY_0628
ACCOUNTSERVER/VersionCommon.h - Search Crtl+f = __SECURITY_0628Quote:
#ifndef __VERSION_COMMON_H__
#define __VERSION_COMMON_H__
#define __VER 15 // 15차
#define __MAINSERVER
#if !defined( __TESTSERVER ) && !defined( __MAINSERVER )
#define __INTERNALSERVER
#endif
#define __SECURITY_0628 //flyff.a check
#define __SERVER // 클라이언트 전용코드를 빌드하지 않기 위한 define
#define __CRC
#define __SO1014 // 소켓 예외 처리( 캐쉬, 인증, 로그인 )
#define __PROTOCOL0910
#define __PROTOCOL1021
#define __VERIFYNETLIB
#define __DOS1101
//#define __S0114_RELOADPRO // 캐릭터 DB에서 읽어오기 : Neuz, Trans, login, World, Certifier, Account( ini : SKIP_TRACKING 추가 )
#define __TWN_LOGIN0816
#define __STL_0402 // stl
#define __GPAUTH
#define __GPAUTH_01
#define __GPAUTH_02 // 독일/프랑스 통합 인증 - 구매
//#define __GPAUTH_03 // 독일/프랑스 통합 인증 - 권한
#define __EUROPE_0514
// 14th
// #define __PCBANG // PC방 혜택
#define __ENCRYPT_PASSWORD // mulcom BEGIN100218 패스워드 암호화
#if (_MSC_VER > 1200)
#define __VS2003 // 컴파일러변경.net
#endif
#if defined(__INTERNALSERVER) // 내부 사무실 테스트서버
#define __JAPAN_AUTH // 일본 인증 변경(웹인증)
#elif defined(__TESTSERVER) // 외부 유저 테스트서버
#elif defined(__MAINSERVER) // 외부 본섭
#endif // end - 서버종류별 define
#endif // __VERSION_COMMON_H__
NEUZ/WinMain.rcQuote:
#ifndef __VERSION_COMMON_H__
#define __VERSION_COMMON_H__
#define __MAINSERVER
#define __VER 15 // 15차
#if !defined( __TESTSERVER ) && !defined( __MAINSERVER )
#define __INTERNALSERVER
#endif
#define __SERVER // 클라이언트 전용코드를 빌드하지 않기 위한 define
//#define __S0114_RELOADPRO // 캐릭터 DB에서 읽어오기 : Neuz, Trans, login, World, Certifier, Account( ini : SKIP_TRACKING 추가 )
#define __STL_0402 // stl
#define __SECURITY_0628 //flyff.a check
#if (_MSC_VER > 1200)
#define __VS2003 // 컴파일러변경.net
#endif
// 08-01-22
#define __GPAUTH_01 // 독일/프랑스 통합 인증
#define __GPAUTH_02 // 독일/프랑스 통합 인증 - 구매
#define __EUROPE_0514
// 11th
#define __LOG_PLAYERCOUNT_CHANNEL // 채널별 동접 로그
#define __REMOVE_PLAYER_0221 // 캐릭터 삭제 패킷 조작
#define __RT_1025
// 14th
// #define __PCBANG // PC방 혜택
#if defined(__INTERNALSERVER) // 내부 사무실 테스트서버
#define __SECURITY_0628 // 리소스 버전 인증
#elif defined(__TESTSERVER) // 외부 유저 테스트서버
#elif defined(__MAINSERVER) // 외부 본섭
#endif // end - 서버종류별 define
#endif // __VERSION_COMMON_H__
[quote]//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define IDC_STATIC -1
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Korean resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
#ifdef _WIN32
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
#pragma code_page(949)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_WEBDLG DIALOGEX 0, 0, 182, 182
STYLE WS_POPUP | WS_BORDER
EXSTYLE WS_EX_TOOLWINDOW
FONT 10, "System", 0, 0, 0x1
BEGIN
END
IDD_CONSOLE_DLG DIALOG DISCARDABLE 0, 0, 204, 321
STYLE WS_CAPTION | WS_SYSMENU
CAPTION "NeuzConsole"
FONT 10, "System"
BEGIN
LISTBOX IDC_CONSOLE_LIST,7,7,190,287,LBS_NOINTEGRALHEIGHT |
WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
EDITTEXT IDC_CONSOLE_EDIT,7,302,190,12,ES_AUTOHSCROLL
END
IDD_DIALOG4 DIALOG DISCARDABLE 0, 0, 187, 94
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 10, "System"
BEGIN
DEFPUSHBUTTON "OK",IDOK,130,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,130,24,50,14
END
IDD_DIALOG5 DIALOG DISCARDABLE 0, 0, 187, 94
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 10, "System"
BEGIN
DEFPUSHBUTTON "OK",IDOK,130,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,130,24,50,14
END
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 3,8,22,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "000004b0"
BEGIN
VALUE "Comments", "\0"
VALUE "CompanyName", "Aeonsoft \0"
VALUE "FileDescription", "Neuz\0"
VALUE "FileVersion", "3, 8, 22, 1\0"
VALUE "InternalName", "Neuz\0"
VALUE "LegalCopyright", "Copyright ¨Ï 2002\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "Neuz.exe\0"
VALUE "PrivateBuild", "\0"
VALUE "ProductName", "Masquerade\0"
VALUE "ProductVersion", "1, 0, 0, 1\0"
VALUE "SpecialBuild", "\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0, 1200
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// Data
//
IDR_DATA1 RCDATA DISCARDABLE
BEGIN
0x7376, 0x312e, 0x312e, 0x0a0d, 0x2d3b, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d,
0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d,
0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d,
0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d, 0x2d2d,
0x0d3b, 0x0d0a, 0x090a, 0x2a2f, 0x0a0d, 0x6909, 0x2866, 0x6620, 0x6944,
0x6666, 0x7375, 0x5465, 0x7865, 0x7574, 0x6572, 0x612e, 0x3d20, 0x203d,
0x2e30, 0x6630, 0x2920, 0x0a0d, 0x7b09, 0x0a0d, 0x0909, 0x6572, 0x7574,
0x6e72, 0x3020, 0x0d3b, 0x090a, 0x7209, 0x7465, 0x7275, 0x206e, 0x6e49,
0x442e, 0x6669, 0x7566, 0x6573, 0x0d3b, 0x090a, 0x0d7d, 0x090a, 0x6c65,
0x6573, 0x0a0d, 0x7b09, 0x0a0d, 0x0909, 0x6572, 0x7574, 0x6e72, 0x4920,
0x2e6e, 0x6944, 0x6666, 0x7375, 0x3b65, 0x0a0d, 0x7d09, 0x0a0d, 0x2a09,
0x0d2f, 0x7d0a, 0x0a0d, 0x0a0d, 0x0a0d, 0x2f2f, 0x2a20, 0x2a2a, 0x2a2a,
0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a,
0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a,
0x2a2a, 0x2a2a, 0x0d2a, 0x2f0a, 0x202f, 0xd7c5, 0xa9c5, 0xd0b4, 0x0a0d,
0x2f2f, 0x2a20, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a,
0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a,
0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x2a2a, 0x0d2a, 0x740a, 0x6365,
0x6e68, 0x7169, 0x6575, 0x5409, 0x6853, 0x6461, 0x7265, 0x0a0d, 0x0d7b,
0x090a, 0x6170, 0x7373, 0x7020, 0x0d30, 0x090a, 0x0d7b, 0x090a, 0x5609,
0x7265, 0x6574, 0x5378, 0x6168, 0x6564, 0x2072, 0x203d, 0x6f63, 0x706d,
0x6c69, 0x2065, 0x7376, 0x315f, 0x315f, 0x5620, 0x5f53, 0x6f47, 0x7275,
0x7561, 0x2864, 0x3b29, 0x0a0d, 0x0909, 0x6950, 0x6578, 0x536c, 0x6168,
0x6564, 0x2072, 0x3d20, 0x4e20, 0x4c55, 0x3b4c, 0x0a0d, 0x0a0d, 0x0909,
0x6f46, 0x4567, 0x616e, 0x6c62, 0x2065, 0x203d, 0x7274, 0x6575, 0x093b,
0x0909, 0x2f2f, 0xc620, 0xb1f7, 0xbbd7, 0xbfe7, 0x0deb, 0x200a, 0x2020,
0x2020, 0x2020, 0x4620, 0x676f, 0x6556, 0x7472, 0x7865, 0x6f4d, 0x6564,
0x3d20, 0x4c20, 0x6e69, 0x6165, 0x3b72, 0x0909, 0x2f2f, 0xbc20, 0xc7b1,
0x20fc, 0xf7c6, 0xd7b1, 0x0a0d, 0x0a0d, 0x2009, 0x2020, 0x4120, 0x6464,
0x6572, 0x7373, 0x5b55, 0x5d30, 0x3d20, 0x5720, 0x6172, 0x3b70, 0x0a0d,
0x2009, 0x2020, 0x4120, 0x6464, 0x6572, 0x7373, 0x5b56, 0x5d30, 0x3d20,
0x5720, 0x6172, 0x3b70, 0x0a0d, 0x7d09, 0x0a0d, 0x0a0d, 0x7009, 0x7361,
0x2073, 0x3170, 0x0a0d, 0x7b09, 0x0a0d, 0x0909, 0x6556, 0x7472, 0x7865,
0x6853, 0x6461, 0x7265, 0x3d20, 0x6320, 0x6d6f, 0x6970, 0x656c, 0x7620,
0x5f73, 0x5f31, 0x2031, 0x5356, 0x535f, 0x4550, 0x2843, 0x3b29, 0x0a0d,
0x0909, 0x6950, 0x6578, 0x536c, 0x6168, 0x6564, 0x2072, 0x3d20, 0x6320,
0x6d6f, 0x6970, 0x656c, 0x7020, 0x5f73, 0x5f32, 0x2030, 0x5350, 0x535f,
0x4550, 0x2843, 0x3b29, 0x0a0d, 0x0a0d, 0x0909, 0x6f46, 0x4567, 0x616e,
0x6c62, 0x2065, 0x203d, 0x7274, 0x6575, 0x093b, 0x0909, 0x2f2f, 0xc620,
0xb1f7, 0xbbd7, 0xbfe7, 0x0deb, 0x200a, 0x2020, 0x2020, 0x2020, 0x4620,
0x676f, 0x6556, 0x7472, 0x7865, 0x6f4d, 0x6564, 0x3d20, 0x4c20, 0x6e69,
0x6165, 0x3b72, 0x0909, 0x2f2f, 0xbc20, 0xc7b1, 0x20fc, 0xf7c6, 0xd7b1,
0x0a0d, 0x0909, 0x0a0d, 0x2009, 0x2020, 0x4120, 0x6464, 0x6572, 0x7373,
0x5b55, 0x5d30, 0x3d20, 0x5720, 0x6172, 0x3b70, 0x0a0d, 0x2009, 0x2020,
0x4120, 0x6464, 0x6572, 0x7373, 0x5b56, 0x5d30, 0x3d20, 0x5720, 0x6172,
0x3b70, 0x0a0d, 0x7d09, 0x0a0d, 0x7009, 0x7361, 0x2073, 0x3270, 0x0a0d,
0x7b09, 0x0a0d, 0x0909, 0x6556, 0x7472, 0x7865, 0x6853, 0x6461, 0x7265,
0x3d20, 0x6320, 0x6d6f, 0x6970, 0x656c, 0x7620, 0x5f73, 0x5f31, 0x2031,
0x5356, 0x535f, 0x4550, 0x2843, 0x3b29, 0x0a0d, 0x0909, 0x6950, 0x6578,
0x536c, 0x6168, 0x6564, 0x2072, 0x3d20, 0x6320, 0x6d6f, 0x6970, 0x656c,
0x7020, 0x5f73, 0x5f32, 0x2030, 0x5350, 0x535f, 0x4550, 0x5f43, 0x4c41,
0x4850, 0x2841, 0x3b29, 0x0a0d, 0x0a0d, 0x0909, 0x6f46, 0x4567, 0x616e,
0x6c62, 0x2065, 0x203d, 0x7274, 0x6575, 0x093b, 0x0909, 0x2f2f, 0xc620,
0xb1f7, 0xbbd7, 0xbfe7, 0x0deb, 0x200a, 0x2020, 0x2020, 0x2020, 0x4620,
0x676f, 0x6556, 0x7472, 0x7865, 0x6f4d, 0x6564, 0x3d20, 0x4c20, 0x6e69,
0x6165, 0x3b72, 0x0909, 0x2f2f, 0xbc20, 0xc7b1, 0x20fc, 0xf7c6, 0xd7b1,
0x0a0d, 0x0a0d, 0x0909, 0x6c41, 0x6870, 0x4261, 0x656c, 0x646e, 0x6e45,
0x6261, 0x656c, 0x3d20, 0x5420, 0x5552, 0x3b45, 0x0a0d, 0x0909, 0x7253,
0x4263, 0x656c, 0x646e, 0x2020, 0x203d, 0x5253, 0x4343, 0x4c4f, 0x524f,
0x0d3b, 0x090a, 0x4409, 0x7365, 0x4274, 0x656c, 0x646e, 0x3d20, 0x4920,
0x564e, 0x5253, 0x4343, 0x4c4f, 0x524f, 0x0d3b, 0x090a, 0x4309, 0x6c75,
0x4d6c, 0x646f, 0x2065, 0x3d20, 0x4e20, 0x4e4f, 0x3b45, 0x0a0d, 0x0a0d,
0x2009, 0x2020, 0x4120, 0x6464, 0x6572, 0x7373, 0x5b55, 0x5d30, 0x3d20,
0x5720, 0x6172, 0x3b70, 0x0a0d, 0x2009, 0x2020, 0x4120, 0x6464, 0x6572,
0x7373, 0x5b56, 0x5d30, 0x3d20, 0x5720, 0x6172, 0x3b70, 0x0a0d, 0x7d09,
0x0a0d, 0x0a0d, 0x7009, 0x7361, 0x2073, 0x3370, 0x0a0d, 0x7b09, 0x0a0d,
0x0909, 0x6556, 0x7472, 0x7865, 0x6853, 0x6461, 0x7265, 0x3d20, 0x6320,
0x6d6f, 0x6970, 0x656c, 0x7620, 0x5f73, 0x5f31, 0x2031, 0x5356, 0x535f,
0x696b, 0x426e, 0x7361, 0x6369, 0x2928, 0x0d3b, 0x090a, 0x5009, 0x7869,
0x6c65, 0x6853, 0x6461, 0x7265, 0x2020, 0x203d, 0x554e, 0x4c4c, 0x0d3b,
0x090a, 0x0d09, 0x090a, 0x4609, 0x676f, 0x6e45, 0x6261, 0x656c, 0x3d20,
0x7420, 0x7572, 0x3b65, 0x0909, 0x2f09, 0x202f, 0xf7c6, 0xd7b1, 0xe7bb,
0xebbf, 0x0a0d, 0x2020, 0x2020, 0x2020, 0x2020, 0x6f46, 0x5667, 0x7265,
0x6574, 0x4d78, 0x646f, 0x2065, 0x203d, 0x694c, 0x656e, 0x7261, 0x093b,
0x2f09, 0x202f, 0xb1bc, 0xfcc7, 0xc620, 0xb1f7, 0x0dd7, 0x090a, 0x0d7d,
0x0d0a, 0x090a, 0x6170, 0x7373, 0x7020, 0x0d34, 0x090a, 0x0d7b, 0x090a,
0x5609, 0x7265, 0x6574, 0x5378, 0x6168, 0x6564, 0x2072, 0x203d, 0x6f63,
0x706d, 0x6c69, 0x2065, 0x7376, 0x315f, 0x315f, 0x5620, 0x5f53, 0x6b53,
0x6e69, 0x5053, 0x4345, 0x455f, 0x564e, 0x2928, 0x0d3b, 0x090a, 0x5009,
0x7869, 0x6c65, 0x6853, 0x6461, 0x7265, 0x2020, 0x203d, 0x6f63, 0x706d,
0x6c69, 0x2065, 0x7370, 0x325f, 0x305f, 0x5020, 0x5f53, 0x6b53, 0x6e69,
0x5053, 0x4345, 0x455f, 0x564e, 0x2928, 0x0d3b, 0x0d0a, 0x090a, 0x4609,
0x676f, 0x6e45, 0x6261, 0x656c, 0x3d20, 0x7420, 0x7572, 0x3b65, 0x0909,
0x2f09, 0x202f, 0xf7c6, 0xd7b1, 0xe7bb, 0xebbf, 0x0a0d, 0x2020, 0x2020,
0x2020, 0x2020, 0x6f46, 0x5667, 0x7265, 0x6574, 0x4d78, 0x646f, 0x2065,
0x203d, 0x694c, 0x656e, 0x7261, 0x093b, 0x2f09, 0x202f, 0xb1bc, 0xfcc7,
0xc620, 0xb1f7, 0x0dd7, 0x0d0a, 0x090a, 0x2020, 0x2020, 0x6441, 0x7264,
0x7365, 0x5573, 0x305b, 0x205d, 0x203d, 0x7257, 0x7061, 0x0d3b, 0x090a,
0x2020, 0x2020, 0x6441, 0x7264, 0x7365, 0x5673, 0x305b, 0x205d, 0x203d,
0x7257, 0x7061, 0x0d3b, 0x090a, 0x0d7d, 0x0d0a, 0x090a, 0x6170, 0x7373,
0x7020, 0x0d35, 0x090a, 0x0d7b, 0x090a, 0x5609, 0x7265, 0x6574, 0x5378,
0x6168, 0x6564, 0x2072, 0x203d, 0x6f63, 0x706d, 0x6c69, 0x2065, 0x7376,
0x315f, 0x315f, 0x5620, 0x5f53, 0x6b53, 0x6e69, 0x5053, 0x4345, 0x455f,
0x564e, 0x2928, 0x0d3b, 0x090a, 0x5009, 0x7869, 0x6c65, 0x6853, 0x6461,
0x7265, 0x2020, 0x203d, 0x6f63, 0x706d, 0x6c69, 0x2065, 0x7370, 0x325f,
0x305f, 0x5020, 0x5f53, 0x6b53, 0x6e69, 0x5053, 0x4345, 0x455f, 0x564e,
0x415f, 0x5048, 0x4148, 0x2928, 0x0d3b, 0x090a, 0x0d09, 0x090a, 0x4609,
0x676f, 0x6e45, 0x6261, 0x656c, 0x3d20, 0x7420, 0x7572, 0x3b65, 0x0909,
0x2f09, 0x202f, 0xf7c6, 0xd7b1, 0xe7bb, 0xebbf, 0x0a0d, 0x2020, 0x2020,
0x2020, 0x2020, 0x6f46, 0x5667, 0x7265, 0x6574, 0x4d78, 0x646f, 0x2065,
0x203d, 0x694c, 0x656e, 0x7261, 0x093b, 0x2f09, 0x202f, 0xb1bc, 0xfcc7,
0xc620, 0xb1f7, 0x0dd7, 0x090a, 0x4309, 0x6c75, 0x4d6c, 0x646f, 0x2065,
0x3d20, 0x4e20, 0x4e4f, 0x3b45, 0x0a0d, 0x0a0d, 0x0909, 0x6c41, 0x6870,
0x4261, 0x656c, 0x646e, 0x6e45, 0x6261, 0x656c, 0x3d20, 0x5420, 0x5552,
0x3b45, 0x0a0d, 0x0909, 0x7253, 0x4263, 0x656c, 0x646e, 0x3d20, 0x5320,
0x4352, 0x4f43, 0x4f4c, 0x3b52, 0x0a0d, 0x0909, 0x6544, 0x7473,
/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//
IDC_BASE CURSOR DISCARDABLE "res\\curBase.cur"
IDC_ATTACK CURSOR DISCARDABLE "res\\curAttack.cur"
IDC_NPC CURSOR DISCARDABLE "res\\curNPC.cur"
IDC_CONTROL CURSOR DISCARDABLE "res\\curControl.cur"
IDC_GETITEM CURSOR DISCARDABLE "res\\curGetItem.cur"
IDC_SELECT CURSOR DISCARDABLE "res\\curSelect.cur"
IDC_CAMERA CURSOR DISCARDABLE "res\\curCamera.cur"
IDC_DELAY CURSOR DISCARDABLE "res\\curDelay.cur"
IDC_RESIZE_HORI CURSOR DISCARDABLE "res\\hori.cur"
IDC_RESIZE_VERT CURSOR DISCARDABLE "res\\resize_h.cur"
IDC_RESIZE_HV1 CURSOR DISCARDABLE "res\\cur00001.cur"
IDC_RESIZE_HV2 CURSOR DISCARDABLE "res\\cur00002.cur"
IDC_EDIT CURSOR DISCARDABLE "res\\edit.cur"
IDC_CURSOR2 CURSOR DISCARDABLE "res\\cursor2.cur"
IDC_CURSOR3 CURSOR DISCARDABLE "res\\cursor3.cur"
IDC_DOOR CURSOR DISCARDABLE "res\\curDoor.cur"
IDC_GATE CURSOR DISCARDABLE "res\\curGate.cur"
IDC_LEVER CURSOR DISCARDABLE "res\\curLever.cur"
IDC_HAMMER CURSOR DISCARDABLE "res\\anvil.cur"
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON1 ICON DISCARDABLE "res\\Omg.ico"
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_CONSOLE_DLG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 197
TOPMARGIN, 7
BOTTOMMARGIN, 314
END
IDD_DIALOG4, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 180
TOPMARGIN, 7
BOTTOMMARGIN, 87
END
IDD_DIALOG5, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 180
TOPMARGIN, 7
BOTTOMMARGIN, 87
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_SERVER_IP "127.0.0.1"
IDS_LANG "1"
IDS_SUBLANG "0"
IDS_ENCRYPTPWD "1"
IDS_FAKEFULLMODE "1"
IDS_MSGVER "00000000" //cuvvvie
IDS_CACHE_PORT "15400" //cuvvvie
IDS_SHOUTLIMIT_SECOND "5000"
IDS_SHOUTLIMIT_COUNT "5"
IDS_CODEPAGE "1252"
IDS_2ND_PASSWORD "0" //spikenbror
END
#endif // Korean resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_SELECTDEVICE DIALOG DISCARDABLE 0, 0, 267, 138
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Select Device"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Rendering device",IDC_STATIC,5,5,200,45
LTEXT "&Adapter:",IDC_STATIC,22,17,65,10,SS_CENTERIM AGE
COMBOBOX IDC_ADAPTER_COMBO,90,15,105,100,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
LTEXT "&Device:",IDC_STATIC,22,32,65,10,SS_CENTERIMA GE
COMBOBOX IDC_DEVICE_COMBO,90,30,105,100,CBS_DROPDOWNLIST |
WS_VSCROLL | WS_TABSTOP
GROUPBOX "Rendering mode",IDC_STATIC,5,52,200,45
CONTROL "Use desktop &window",IDC_WINDOW,"Button",
BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,10,62,85,15
CONTROL "&Fullscreen mode:",IDC_FULLSCREEN,"Button",
BS_AUTORADIOBUTTON,10,77,75,15
COMBOBOX IDC_FULLSCREENMODES_COMBO,90,77,105,204,CBS_DROPDO WNLIST |
WS_VSCROLL | WS_GROUP | WS_TABSTOP
GROUPBOX "Multisample",IDC_STATIC,5,101,200,28
LTEXT "&Multisample Type:",IDC_STATIC,22,113,62,10,
SS_CENTERIMAGE
COMBOBOX IDC_MULTISAMPLE_COMBO,90,111,105,100,CBS_DROPDOWNL IST |
WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "OK",IDOK,210,10,50,14
PUSHBUTTON "Cancel",IDCANCEL,210,30,50,14
END
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_MAIN_ICON ICON DISCARDABLE "res\\main_ico.ico"
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_SELECTDEVICE, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 259
TOPMARGIN, 7
END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#define IDC_STATIC -1\r\n"
"#include <windows.h>\r\n"
"\r\n"
"\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//
IDR_MAIN_ACCEL ACCELERATORS DISCARDABLE
BEGIN
VK_RETURN, IDM_TOGGLEFULLSCREEN, VIRTKEY, ALT, NOINVERT
"X", IDM_EXIT, VIRTKEY, ALT, NOINVERT
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
_Common/File.cpp - Search Ctrl+f = CString strResFile = m_File.GetFileName();
Quote:
#include "stdafx.h"
#include <string.h>
#include <stdio.h>
#include "file.h"
#include "xutil.h"
#ifdef __SECURITY_0628
#ifdef __CLIENT
#include "definetext.h"
#endif // __CLIENT
#endif // __SECURITY_0628
#include "tools.h"
/////////////////////////////////////////////////////////////////////////////
// CFileIO
BOOL CFileIO::Close(void)
{
if( fp )
{
fclose( fp );
fp = 0;
return TRUE;
}
return FALSE;
}
BOOL CFileIO::Open( LPCTSTR fileName, TCHAR* mode )
{
fp = _tfopen( fileName, mode );
if( fp )
return TRUE;
return FALSE;
}
LPVOID CFileIO::Read(void)
{
long size = GetLength();
LPVOID ptr = new BYTE[ size ];
if( !ptr )
return NULL;
fseek( fp, 0, SEEK_SET );
if( fread( ptr, size, 1, fp ) )
{
return ptr;
}
safe_delete_array( ptr );
return NULL;
}
int CFileIO::PutWideString( LPCTSTR lpszString )
{
wchar_t wszBuff[ 1024 ];
int nLen = strlen( lpszString );
ATL::_mbstowcsz(wszBuff, lpszString,nLen + 1 );
return Write( wszBuff, wcslen( wszBuff ) * 2 );
}
#if defined( __CLIENT )
/////////////////////////////////////////////////////////////////////////////
// CResFile
CMapStringToPtr CResFile::m_mapResource;
#ifdef __SECURITY_0628
char CResFile::m_szResVer[100];
map<string, string> CResFile::m_mapAuth;
#endif // __SECURITY_0628
CResFile::CResFile( LPCTSTR lpszFileName, TCHAR *mode )
{
m_bResouceInFile = FALSE;
m_nFileSize = 0;
m_nFileBeginPosition = 0;
m_nFileCurrentPosition = 0;
m_nFileEndPosition = 0;
m_bEncryption = FALSE;
ZeroMemory( m_szFileName, sizeof( m_szFileName ) );
Open( lpszFileName, mode );
}
CResFile::CResFile()
{
m_bResouceInFile = FALSE;
m_nFileSize = 0;
m_nFileBeginPosition = 0;
m_nFileCurrentPosition = 0;
m_nFileEndPosition = 0;
m_bEncryption = FALSE;
ZeroMemory( m_szFileName, sizeof( m_szFileName ) );
}
BOOL CResFile::Close( void )
{
if( !m_bResouceInFile )
return CFileIO::Close();
else
{
if( INVALID_HANDLE_VALUE != ( HANDLE )m_File.m_hFile )
m_File.Close();
return TRUE;
}
}
void CResFile::AddResource( TCHAR* lpszResName )
{
//m_mapResource.Add( )
int nFileHeaderSize = 0;
int nFileNumber = 0;
short nFileNameLength = 0;
char szFileName[_MAX_FNAME] = "";
int nFileSize = 0;
int nFilePosition = 0;
BYTE byEncryptionKey;
bool bEncryption;
TCHAR szFullFileName[ MAX_PATH ];
TCHAR drive[_MAX_DRIVE], dir[_MAX_DIR], name[ _MAX_FNAME ], ext[_MAX_EXT];
_splitpath( lpszResName, drive, dir, name, ext );
CFile file;
if( file.Open( lpszResName, CFile::modeRead ) == FALSE )
return;
file.Read( &byEncryptionKey, sizeof( byEncryptionKey ) );
file.Read( &bEncryption, sizeof( bEncryption ) );
file.Read( &nFileHeaderSize, sizeof( int ) );
char *pHeader = new char[ nFileHeaderSize ];
// 해더는 암호 기본
//if( m_bEncryption ) // 암호화 되었다면
{
char *pCryptHeader = new char[ nFileHeaderSize ];
file.Read( pCryptHeader, nFileHeaderSize );
for( int i = 0; i < nFileHeaderSize; i++ )
{
pHeader[i] = Decryption( byEncryptionKey, pCryptHeader[ i ] );
}
safe_delete_array( pCryptHeader );
}
//else // 암호화 안되었다면
//{
// m_File.Read( pHeader, nFileHeaderSize );
//}
int nHeaderPosition = 0;
char strVersion[8] ="";
memcpy( strVersion, &pHeader[ nHeaderPosition ], 7 ); nHeaderPosition += 7;
memcpy( &nFileNumber, &pHeader[ nHeaderPosition ], sizeof( short ) ); nHeaderPosition += sizeof( short );
time_t time_;
BOOL bFind = FALSE;
for( int i = 0; i < nFileNumber; i++ )
{
memcpy( &nFileNameLength, &pHeader[ nHeaderPosition ], sizeof( short ) ); nHeaderPosition += sizeof( short );
memcpy( szFileName, &pHeader[ nHeaderPosition ], nFileNameLength ); nHeaderPosition += nFileNameLength;
memcpy( &nFileSize, &pHeader[ nHeaderPosition ], sizeof( int ) ); nHeaderPosition += sizeof( int );
memcpy( &time_, &pHeader[ nHeaderPosition ], sizeof( time_t ) ); nHeaderPosition += sizeof( time_t );
memcpy( &nFilePosition, &pHeader[ nHeaderPosition ], sizeof( int ) ); nHeaderPosition += sizeof( int );
RESOURCE* lpRes = new RESOURCE;
ZeroMemory( lpRes, sizeof( RESOURCE ) );
lpRes->dwOffset = nFilePosition;
lpRes->dwFileSize = nFileSize;
lpRes->byEncryptionKey = byEncryptionKey;
lpRes->bEncryption = bEncryption;
strcpy( lpRes->szResourceFile, lpszResName );
strlwr( lpRes->szResourceFile );
strcpy( szFullFileName, dir );
strcat( szFullFileName, szFileName );
strlwr( szFullFileName );
#ifdef __CLIENT
#ifdef __SECURITY_0628
CString strFullFileName = szFullFileName;
if( strFullFileName.Find( "\\", 0 ) < 0 )
{
RESOURCE* ptr;
if( m_mapResource.Lookup( szFullFileName, (void*&)ptr ) )
{
::Error( "killed by CResFile::AddResource() %s, %s, 1", prj.GetText(TID_GAME_RESOURCE_MODIFIED), szFullFileName );
ExitProcess( -1 );
}
}
#endif // __SECURITY_0628
#endif // __CLIENT
m_mapResource.SetAt( szFullFileName, lpRes );
/*
// 찾았다면
if( 0 == strcmpi( lpszFileName, szFileName ) )
{
bFind = TRUE;
//strcpy( m_szFileName, szFileName );
//m_nFileSize = nFileSize;
//m_nFileBeginPosition = nFilePosition;
//m_nFileCurrentPosition = nFilePosition;
//m_nFileEndPosition = nFilePosition + nFileSize;
//m_File.Seek( m_nFileCurrentPosition, CFile::begin );
break;
}
*/
ZeroMemory( szFileName, sizeof( szFileName ) );
}
safe_delete_array( pHeader );
}
bool CompareExt( LPCTSTR szName, LPCTSTR szExt )
{
int nExt = strlen( szExt );
int n = strlen( szName );
if( n < nExt )
return false;
return ( memcmp( szName + n - nExt, szExt, nExt ) == 0 );
}
void CResFile::ScanResource( LPCTSTR lpszRootPath )
{
TCHAR szPath[ MAX_PATH ];
TCHAR szPathTemp[ MAX_PATH ];
struct _finddata_t c_file;
long hFile;
strcpy( szPathTemp, lpszRootPath );
strcat( szPathTemp, "*.*" );
if( ( hFile = _findfirst( szPathTemp, &c_file ) ) != -1L )
{
do
{
strlwr( c_file.name );
strcpy( szPath, lpszRootPath );
if( c_file.attrib & _A_SUBDIR )//if( CFile::GetStatus( name, fileStatus) == TRUE )
{
if( strcmp( c_file.name, "." ) && strcmp( c_file.name, ".." )
#ifdef __INTERNALSERVER
&& strcmp( c_file.name, ".svn" )
#endif // __INTERNALSERVER
)
{
strcat( szPath, c_file.name );
strcat( szPath, "\\" );
ScanResource( szPath );
}
}
else
//if( strstr( c_file.name, ".res" ) != 0 )
if( CompareExt( c_file.name, ".res" ) )
{
strcat( szPath, c_file.name );
AddResource( szPath );
}
}
while( _findnext( hFile, &c_file ) == 0 );
_findclose( hFile );
}
}
void CResFile::FreeResource()
{
CString strNameName;
RESOURCE* lpRes;
POSITION pos;
pos = m_mapResource.GetStartPosition();
while( pos )
{
m_mapResource.GetNextAssoc( pos, strNameName, (void*&) lpRes );
safe_delete( lpRes );
}
}
BOOL CResFile::Open( LPCTSTR lpszFileName, TCHAR *mode )
{
// TRACE("CResFile::Open( %s )\n", lpszFileName );
if( CFileIO::Open( lpszFileName, mode ) == TRUE )
{
#ifdef __SECURITY_0628
#ifndef _DEBUG
#ifdef __MAINSERVER
CString strFileName = lpszFileName;
if( strFileName.Find( "\\", 0 ) < 0 )
{
::Error( "killed by CResFile::Open() %s, %s, 2", prj.GetText(TID_GAME_RESOURCE_MODIFIED), lpszFileName );
ExitProcess( -1 );
}
#endif // __MAINSERVER
#endif // _DEBUG
#endif // __SECURITY_0628
return TRUE;
}
char szSerchPath[MAX_PATH];
GetCurrentDirectory( sizeof( szSerchPath ), szSerchPath );
TCHAR drive[_MAX_DRIVE], dir[_MAX_DIR], name[ _MAX_FNAME ], ext[_MAX_EXT];
_splitpath( lpszFileName, drive, dir, name, ext );
TCHAR szFileName[ MAX_PATH ];
RESOURCE* lpRes;
strcpy( szFileName, lpszFileName );
strlwr( szFileName );
m_bResouceInFile = FALSE;
if( m_mapResource.Lookup( szFileName, (void*&) lpRes ) )
{
CFileException fileExc;
if( m_File.Open( lpRes->szResourceFile, CFile::modeRead | CFile::shareDenyNone, &fileExc ) )
{
m_nFileSize = lpRes->dwFileSize;
m_nFileBeginPosition = lpRes->dwOffset;
m_nFileCurrentPosition = lpRes->dwOffset;
m_nFileEndPosition = lpRes->dwOffset + m_nFileSize;
m_byEncryptionKey = lpRes->byEncryptionKey;
m_bEncryption = lpRes->bEncryption;
m_File.Seek( m_nFileCurrentPosition, CFile::begin );
m_bResouceInFile = TRUE;
#ifdef __SECURITY_0628
lstrcpy( m_szFileName, szFileName );
#endif // __SECURITY_0628
//m_File.Close();
return TRUE;
}
TCHAR szCause[255];
fileExc.GetErrorMessage(szCause, 255);
::Error( "CResFile Open Error %s FileName = %s, Resource = %s, CurrentDir = %s\n",
szCause,
szFileName,
lpRes->szResourceFile,
szSerchPath );
return FALSE;
}
return FALSE;
}
/*
BOOL CResFile::FindFile(char *szSerchPath, LPCTSTR lpszFileName, TCHAR *mode, int f )
{
HANDLE hSrch;
WIN32_FIND_DATA wfd;
BOOL bResult=TRUE;
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char dir1[_MAX_DIR];
char dir2[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
char filepath[MAX_PATH];
TCHAR szFileName[_MAX_FNAME];
_splitpath( lpszFileName, drive, dir1, szFileName, ext );
wsprintf( szFileName, "%s%s", szFileName, ext );
_splitpath( szSerchPath, drive, dir2, fname, ext );
if( dir1[ 0 ] == '\0' )
wsprintf( szSerchPath, "*.res" );
else
wsprintf( szSerchPath, "%s\\*.res", dir1 );
_splitpath( szSerchPath, drive, dir, fname, ext );
if( ( hSrch = FindFirstFile( szSerchPath, &wfd ) ) != INVALID_HANDLE_VALUE )
{
while ( bResult )
{
_tcslwr( wfd.cFileName );
_splitpath( wfd.cFileName, NULL, NULL, NULL, ext );
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
}
else
{
// .Res 파일을 찾았다면
if( 0 == strcmpi( ext, ".res" ) )
{
wsprintf( filepath, "%s%s%s", drive, dir, wfd.cFileName);
// .Res 파일 안에서 원하는 파일을 찾았다면
if( TRUE == FindFileFromResource( filepath, szFileName ) )
{
return TRUE;
}
}
}
bResult = FindNextFile(hSrch,&wfd);
}
FindClose( hSrch );
}
// 찾는 파일이 외부에 있다면
//if( 0 == strcmpi( szFileName, wfd.cFileName ) )
//{
m_bResouceInFile = FALSE;
return CFileIO::Open( lpszFileName, mode );
}
BOOL CResFile::FindFileFromResource( char *filepath, LPCTSTR lpszFileName )
{
int nFileHeaderSize = 0;
int nFileNumber = 0;
int nFileNameLength = 0;
char szFileName[_MAX_FNAME] = "";
int nFileSize = 0;
int nFilePosition = 0;
if( m_File.Open( filepath, CFile::modeRead ) == FALSE )
return FALSE;
m_File.Read( &m_byEncryptionKey, sizeof( m_byEncryptionKey ) );
m_File.Read( &m_bEncryption, sizeof( m_bEncryption ) );
m_File.Read( &nFileHeaderSize, sizeof( int ) );
char *pHeader = new char[ nFileHeaderSize ];
// 해더는 암호 기본
//if( m_bEncryption ) // 암호화 되었다면
{
char *pCryptHeader = new char[ nFileHeaderSize ];
m_File.Read( pCryptHeader, nFileHeaderSize );
for( int i = 0; i < nFileHeaderSize; i++ )
{
pHeader[i] = Decryption( m_byEncryptionKey, pCryptHeader[ i ] );
}
delete [] pCryptHeader;
}
//else // 암호화 안되었다면
//{
// m_File.Read( pHeader, nFileHeaderSize );
//}
int nHeaderPosition = 0;
char strVersion[8] ="";
memcpy( strVersion, &pHeader[ nHeaderPosition ], 7 ); nHeaderPosition += 7;
//FILEOUT( "c:\\debug.txt", "1 %s %s %d \n", lpszFileName, strVersion, nHeaderPosition );
memcpy( &nFileNumber, &pHeader[ nHeaderPosition ], sizeof( short ) ); nHeaderPosition += sizeof( short );
// FILEOUT( "c:\\debug.txt", "1 -1 %s %s %d \n", lpszFileName, strVersion, nFileNumber );
time_t time_;
for( int i = 0; i < nFileNumber; i++ )
{
//FILEOUT( "c:\\debug.txt", "2 %s %s %d \n", lpszFileName, szFileName, nFileNumber );
memcpy( &nFileNameLength, &pHeader[ nHeaderPosition ], sizeof( short ) ); nHeaderPosition += sizeof( short );
//FILEOUT( "c:\\debug.txt", "3 %s %s %d \n", lpszFileName, szFileName, nFileNameLength );
memcpy( szFileName, &pHeader[ nHeaderPosition ], nFileNameLength ); nHeaderPosition += nFileNameLength;
//FILEOUT( "c:\\debug.txt", "4 %s %s \n", lpszFileName, szFileName );
memcpy( &nFileSize, &pHeader[ nHeaderPosition ], sizeof( int ) ); nHeaderPosition += sizeof( int );
memcpy( &time_, &pHeader[ nHeaderPosition ], sizeof( time_t ) ); nHeaderPosition += sizeof( time_t );
//FILEOUT( "c:\\debug.txt", "5 %s %s \n", lpszFileName, szFileName );
memcpy( &nFilePosition, &pHeader[ nHeaderPosition ], sizeof( int ) ); nHeaderPosition += sizeof( int );
//FILEOUT( "c:\\debug.txt", "6 %s %s \n", lpszFileName, szFileName );
// 찾았다면
if( 0 == strcmpi( lpszFileName, szFileName ) )
{
m_bResouceInFile = TRUE;
strcpy( m_szFileName, szFileName );
m_nFileSize = nFileSize;
m_nFileBeginPosition = nFilePosition;
m_nFileCurrentPosition = nFilePosition;
m_nFileEndPosition = nFilePosition + nFileSize;
m_File.Seek( m_nFileCurrentPosition, CFile::begin );
break;
}
ZeroMemory( szFileName, sizeof( szFileName ) );
}
delete [] pHeader;
if( m_bResouceInFile == TRUE )
return TRUE;
else
{
m_File.Close();
return FALSE;
}
}
*/
LPVOID CResFile::Read( void )
{
if( !m_bResouceInFile )
return CFileIO::Read();
else
{
LONG size = m_nFileSize;
LPVOID ptr = new BYTE[ size ];
if( !ptr )
return NULL;
//m_File.Seek( m_nFileCurrentPosition, CFile::begin );
//m_nFileCurrentPosition
m_File.Read( ptr, size );
m_nFileCurrentPosition += size;
// 암호화일 경우 암호를 푼다.
if( IsEncryption() )
{
for( int i = 0; i < size; i++ )
((BYTE*)ptr)[ i ] = Decryption( m_byEncryptionKey, ((BYTE*)ptr)[ i ] );
}
return ptr;
}
}
size_t CResFile::Read( void *ptr, size_t size, size_t n /* = 1 */ )
{
if( !m_bResouceInFile )
return CFileIO::Read( ptr, size, n );
else
{
//m_File.Seek( m_nFileCurrentPosition, CFile::begin );
size_t size_ = m_File.Read( ptr, size * n );
m_nFileCurrentPosition += size_;
// 암호화일 경우 암호를 푼다.
if( IsEncryption() )
{
for( int i = 0; i < (int)( size_ ); i++ )
((BYTE*)ptr)[ i ] = Decryption( m_byEncryptionKey, ((BYTE*)ptr)[ i ] );
}
/*#ifdef __SECURITY_0628
CString strResFile = m_File.GetFileName();
CString strFile = m_szFileName;
// if( strResFile.Find( "data.res", 0 ) >= 0
// || strResFile.Find( "dataSub1.res", 0 ) >= 0
// || strResFile.Find( "dataSub2.res", 0 ) >= 0 )
if( strFile.Find( "Zubehor\\", 0 ) < 0 )
{
char sFile[100] = { 0,};
char sData[100] = { 0,};
md5( sFile, m_szFileName );
md5( sData, (BYTE*)ptr, size );
map<string, string>::iterator i = CResFile::m_mapAuth.find( sFile );
if( i != CResFile::m_mapAuth.end() )
{
if( lstrcmp( sData, i->second.data() ) != 0 )
{
TRACE( "%s is modified\n", m_szFileName );
::Error( "killed by CResFile::Read() %s, 3", m_szFileName );
ExitProcess( -1 );
}
}
else
{
TRACE( "%s:%s not found\n", m_szFileName, sFile );
MessageBox( g_Neuz.GetSafeHwnd(), "resource not found", "error", MB_OK );
ExitProcess( -1 );
}
}
#endif // __SECURITY_0628*/
return size_;
}
}
long CResFile::GetLength( void )
{
if( !m_bResouceInFile )
return CFileIO::GetLength();
else
return m_nFileSize;
}
int CResFile::Seek( long offset, int whence )
{
if( !m_bResouceInFile )
return CFileIO::Seek( offset, whence );
else
{
if( whence == SEEK_SET )
{
m_nFileCurrentPosition = m_nFileBeginPosition + offset;
m_File.Seek( m_nFileCurrentPosition, CFile::begin );
}
else
if( whence == SEEK_END )
{
m_nFileCurrentPosition = m_nFileEndPosition - offset;
m_File.Seek( m_nFileCurrentPosition, CFile::end );//CFile::current );
}
else
if( whence == SEEK_CUR )
{
m_nFileCurrentPosition += offset;
//m_File.GetPosition() + offset
int n = (int)( m_File.GetPosition() );
m_File.Seek( offset, CFile::current );
}
else
return -1;
return m_nFileCurrentPosition;
}
}
long CResFile::Tell()
{
if( !m_bResouceInFile )
return CFileIO::Tell();
else
return m_nFileCurrentPosition - m_nFileBeginPosition;
}
char CResFile::GetC( void )
{
if( !m_bResouceInFile )
return CFileIO::GetC();
else
{
char c;
m_File.Read( &c, 1 );
m_nFileCurrentPosition += sizeof( c );
// 암호화일 경우 암호를 푼다.
if( IsEncryption() )
c = Decryption( m_byEncryptionKey, c );
return c;
}
}
WORD CResFile::GetW( void )
{
if( !m_bResouceInFile )
return CFileIO::GetW();
else
{
WORD w;
m_File.Read( &w, sizeof( w ) );
m_nFileCurrentPosition += sizeof( w );
if( IsEncryption() )
{
BYTE h, l;
h = Decryption( m_byEncryptionKey, w >> 8 );
l = Decryption( m_byEncryptionKey, w & 0x00ff );
return h << 8 | l;
}
return w;
}
}
#pragma warning( disable : 4700 ) // CResFile::GetDW 함수내의 초기화 warning을 무시합니다.
DWORD CResFile::GetDW( void )
{
if( !m_bResouceInFile )
return CFileIO::GetDW();
else
{
DWORD dw;
m_File.Read( &dw, sizeof( dw ) );
m_nFileCurrentPosition += sizeof( dw );
if( IsEncryption() )
{
BYTE a,b,c,d;
a = Decryption( m_byEncryptionKey, ( a & 0xff000000 ) >> 24 );
b = Decryption( m_byEncryptionKey, ( b & 0x00ff0000 ) >> 16 );
c = Decryption( m_byEncryptionKey, ( c & 0x0000ff00 ) >> 8 );
d = Decryption( m_byEncryptionKey, ( d & 0x000000ff ) );
return a << 24 | b << 16 | c << 8 | d;
}
return dw;
}
}
#pragma warning( default : 4700 ) // 다시 되돌립니다.
int CResFile::Flush( void )
{
if( !m_bResouceInFile )
return CFileIO::Flush();
else
{
m_File.Flush();
return 0;
}
}
#endif // __CLIENT
CFileFinder::CFileFinder()
{
m_pos = 0;
m_lHandle = 0;
m_bResFile = FALSE;
}
CFileFinder::~CFileFinder()
{
}
BOOL CFileFinder::WildCmp( LPCTSTR lpszWild, LPCTSTR lpszString )
{
char* wild = (char*)lpszWild;
char* string = (char*)lpszString;
char* cp,* mp;
while ((*string) && (*wild != '*'))
{
if ((*wild != *string) && (*wild != '?'))
{
return 0;
}
wild++;
string++;
}
while (*string)
{
if (*wild == '*')
{
if (!*++wild)
{
return 1;
}
mp = wild;
cp = string+1;
}
else
if ((*wild == *string) || (*wild == '?'))
{
wild++;
string++;
}
else
{
wild = mp;
string = cp++;
}
}
while (*wild == '*')
{
wild++;
}
return !*wild;
}
BOOL CFileFinder::FindFirst( LPCTSTR lpFilespec, struct _finddata_t *fileinfo )
{
#if defined( __CLIENT )
CHAR filespec[ MAX_PATH ];
strcpy( filespec, lpFilespec );
strlwr( filespec );
CHAR szPath [ MAX_PATH ];
CHAR szFile[ MAX_PATH ];
TCHAR drive[_MAX_DRIVE], dir[_MAX_DIR], name[ _MAX_FNAME ], ext[_MAX_EXT];
_splitpath( lpFilespec, drive, dir, name, ext );
// 드라이브명이 들어 있으면 완전한 path다. 그러므로 그냥 카피
if( drive[ 0 ] )
{
_tcscpy( m_szFilespec, lpFilespec );
}
// 드리이브명이 없으면 현재 path의 연장이다.
else
{
::GetCurrentDirectory( MAX_PATH, szPath );
_tcscpy( m_szFilespec, szPath );
_tcscat( m_szFilespec, "\\" );
_tcscat( m_szFilespec, lpFilespec );
}
strlwr( m_szFilespec );
CString strNameName;
RESOURCE* lpRes;
m_pos = CResFile::m_mapResource.GetStartPosition();
while( m_pos )
{
CResFile::m_mapResource.GetNextAssoc( m_pos, strNameName, (void*&) lpRes );
_tcscpy( szFile, szPath );
_tcscat( szFile, "\\" );
_tcscat( szFile, strNameName );
strlwr( szFile );
if( WildCmp( m_szFilespec, szFile ) )
{
_splitpath( strNameName, drive, dir, name, ext );
strcpy( fileinfo->name, name );
strcat( fileinfo->name, ext );
fileinfo->size = lpRes->dwFileSize;
fileinfo->attrib = _A_NORMAL;
m_bResFile = TRUE;
return TRUE;
}
}
#endif // __CLIENT
m_bResFile = 0;
m_lHandle = _findfirst( lpFilespec, fileinfo );
if( m_lHandle == -1 )
return FALSE;
return TRUE;
}
BOOL CFileFinder::FindNext( struct _finddata_t *fileinfo )
{
#if defined( __CLIENT )
if( m_bResFile == 1 )
{
TCHAR drive[_MAX_DRIVE], dir[_MAX_DIR], name[ _MAX_FNAME ], ext[_MAX_EXT];
CHAR szPath [MAX_PATH];
CHAR szFile[MAX_PATH];
CString strNameName;
RESOURCE* lpRes;
::GetCurrentDirectory( MAX_PATH, szPath );
while( m_pos )
{
CResFile::m_mapResource.GetNextAssoc( m_pos, strNameName, (void*&) lpRes );
_tcscpy( szFile, szPath );
_tcscat( szFile, "\\" );
_tcscat( szFile, strNameName );
strlwr( szFile );
if( WildCmp( m_szFilespec, szFile ) )
{
_splitpath( strNameName, drive, dir, name, ext );
strcpy( fileinfo->name, name );
strcat( fileinfo->name, ext );
fileinfo->size = lpRes->dwFileSize;
fileinfo->attrib = _A_NORMAL;
return TRUE;
}
}
return FALSE;
}
#endif // __CLIENT
if( _findnext( m_lHandle, fileinfo ) == 0 )
return TRUE;
return FALSE;
}
void CFileFinder::FindClose()
{
if( m_bResFile == 0 && m_lHandle != -1 )
_findclose( m_lHandle );
}
#ifdef __SECURITY_0628
#ifdef __CLIENT
void CResFile::LoadAuthFile( void )
{
CFile a;
if( a.Open( "Flyff.a", CFile::modeRead ) == FALSE )
return;
int nLen = (int)( a.GetLength() );
BYTE* ptr = new BYTE[nLen];
a.Read( ptr, nLen );
int nOffset = 0;
char sFile[100] = { 0,};
char sData[100] = { 0,};
while( nOffset < nLen )
{
memcpy( sFile, ptr + nOffset, 32 );
sFile[32] = '\0';
nOffset += 32;
memcpy( sData, ptr + nOffset, 32 );
sData[32] = '\0';
nOffset += 32;
TRACE( "%s%s\n", sFile, sData );
bool bResult = CResFile::m_mapAuth.insert( map<string, string>::value_type( sFile, sData ) ).second;
// if( bResult == false )
// {
// MessageBox( g_Neuz.GetSafeHwnd(), prj.GetText(TID_GAME_RESOURCE_MODIFIED), "error", MB_OK );
// ExitProcess( -1 );
// }
}
md5( m_szResVer, ptr, nLen );
safe_delete_array( ptr );
a.Close();
}
#endif // __CLIENT
#endif // __SECURITY_0628
Helpme






