Files Günlüğü

martysama

Üye
Üye
Mesaj
137
Beğeni
44
Puan
81
Ticaret Puanı
0
Define bırakıyorum.

defines.h:
#pragma once

#ifdef KJH_ADD_VS2008PORTING_ARRANGE_INCLUDE
#include <boost/smart_ptr.hpp>
#include <boost/weak_ptr.hpp>
#include <boost/format.hpp>
#include <boost/any.hpp>
#include <boost/array.hpp>
#include <boost/pool/object_pool.hpp>
#endif // KJH_ADD_VS2008PORTING_ARRANGE_INCLUDE

#define BoostSmart_Ptr( classname )  shared_ptr<classname>
#define BoostWeak_Ptr( classname )   weak_ptr<classname>

#define BoostSmartPointer(classname) \
    class classname; \
    typedef BoostSmart_Ptr(classname) classname##Ptr

#define BoostRest(p) { if(p) { p.reset(); } }

///////////////////////////////////////////////_Scene start_//////////////////////////////////////////////
//#define MAX_SERVER_HI   25
#define MAX_SERVER_HI   30
#define MAX_SERVER_LOW  20

#define MENU_SERVER_LIST           0
#define MENU_WAITING_SERVERLIST       1
#define MENU_ACCOUNT_UP            2
#define MENU_ACCOUNT_DOWN          3
#define MENU_REGISTRATION_UP       4
#define MENU_REGISTRATION_DOWN     5
#define MENU_OPTION_UP             6
#define MENU_OPTION_DOWN           7
#define MENU_PASSWORD_CONFIRM_UP   8
#define MENU_PASSWORD_CONFIRM_DOWN 9
#define MENU_PASSWORD_CHANGE_UP    10
#define MENU_PASSWORD_CHANGE_DOWN  11
#define MENU_WAITING_LOGIN           12
#define MENU_CHARACTER             20
#define MENU_NEW_DOWN              21
#define MENU_NEW_UP                22
#define MENU_DELETE_RIGHT          23
#define MENU_DELETE_LEFT           24
#define MENU_OK_RIGHT              25
#define MENU_OK_LEFT               26
#define MENU_NEW_CHARACTER_DOWN    27
#define MENU_NEW_CHARACTER_UP      28
#define MENU_EXIT                  29

#define SERVER_LIST_SCENE   0
#define    NON_SCENE            0
#define WEBZEN_SCENE        1
#define LOG_IN_SCENE        2
#define LOADING_SCENE        3
#define CHARACTER_SCENE        4
#define MAIN_SCENE            5

#ifdef MOVIE_DIRECTSHOW
    #define MOVIE_SCENE            6
#endif // MOVIE_DIRECTSHOW

#define MAX_FENRIR_SKILL_MONSTER_NUM    10
#define FENRIR_TYPE_BLACK    0
#define FENRIR_TYPE_RED        1
#define FENRIR_TYPE_BLUE    2
#define FENRIR_TYPE_GOLD    3

#define MAX_WAITINGTIME    ( 15)
#define NUM_LINE_CMB    ( 7)
#define NUM_BUTTON_CMB        ( 2)
#define NUM_PAR_BUTTON_CMB    ( 5)

#define INGAMESHOP_DISPLAY_ITEMLIST_SIZE (9)        // 인게임샵 한페이지에 Display되는 아이템갯수

///////////////////////////////////////////////_Scene end_//////////////////////////////////////////////////////////
//////////////////////////////////////////////_Path start_//////////////////////////////////////////////////////////

#define MAX_PATH_FIND  15
#define NEW_PATH_ALGORITHM

#define TW_SAFEZONE        ( 0x0001)    //  안전지대
#define TW_CHARACTER    ( 0x0002)    //  캐릭터가 차지하고 있음
#define TW_NOMOVE        ( 0x0004)    //  일반속성 ( 이동 불가)
#define TW_NOGROUND        ( 0x0008)    //  땅뚫기 속성
#define TW_WATER        ( 0x0010)    //  물 속성
#define TW_ACTION       ( 0x0020)   //  특정 행동을 취하는 속성.
#define TW_HEIGHT       ( 0x0040)   //  일정한 높이로 올라감.
#define TW_CAMERA_UP    ( 0x0080)   //  카메라 위로 이동.
#define TW_NOATTACKZONE ( 0x0100)   //  공격 불가능 지역 ( 클라이언트 처리 마법 ).
#define TW_ATT1         ( 0x0200)
#define TW_ATT2         ( 0x0400)
#define TW_ATT3         ( 0x0800)
#define TW_ATT4         ( 0x1000)
#define TW_ATT5         ( 0x2000)
#define TW_ATT6         ( 0x4000)
#define TW_ATT7         ( 0x8000)

#define FACTOR_PATH_DIST        ( 5)
#define FACTOR_PATH_DIST_DIAG    ( ( int)( ( float)FACTOR_PATH_DIST * 1.414f))

#define MAX_COUNT_PATH        (500)
#define MAX_INT_FORPATH        (65000 * 30000)

#define PATH_INTESTLIST        ( 0x01)
#define PATH_TESTED            ( 0x02)
#define PATH_END            ( 0x04)

///////////////////////////////////////////////_Path end_///////////////////////////////////////////////////////////
///////////////////////////////////////////_Openglutil start_///////////////////////////////////////////////////////

#define CUSTOM_CAMERA_DISTANCE1  200
#define CUSTOM_CAMERA_DISTANCE2  -150
#define RENDER_ITEMVIEW_FAR   2000.f
#define RENDER_ITEMVIEW_NEAR  20.f

///////////////////////////////////////////_Openglutil end_///////////////////////////////////////////////////////
////////////////////////////////////////////_Object start_////////////////////////////////////////////////////////

// -----------------------------------------------------------------------------------------------------
// 몬스터 타입 설정, 타입 추가하시면 꼭 주석 달아주기를 바랍니다.
// -----------------------------------------------------------------------------------------------------

// 몬스터 타입의 최대 갯수
#ifdef LDS_MOD_EXTEND_MAXMODELLIMITS_200TO400
    // 2010/03-2010/04작업 확장맵 몬스터 추가로 200개 초과
    #define MAX_MODEL_MONSTER    400       
#else // LDS_MOD_EXTEND_MAXMODELLIMITS_200TO400
    // 라클리온 맵 들어가면서 최대 갯수 200개로 확장
    #ifdef CSK_RAKLION_BOSS
    #define MAX_MODEL_MONSTER    200
    #else // CSK_RAKLION_BOSS
    #define MAX_MODEL_MONSTER   150
    #endif // CSK_RAKLION_BOSS
#endif // LDS_MOD_EXTEND_MAXMODELLIMITS_200TO400

#define MODEL_MONSTER01        MODEL_SKILL_END+1
//  MODEL_MONSTER01+63 ~ MODEL_MONSTER01+69     마도시 헬라스의 몬스터들.
//  MODEL_MONSTER01+70 ~ MODEL_MONSTER01+73     카오스캐슬 근위병
//  MODEL_MONSTER01+74 ~ MODEL_MONSTER01+80     공성전 몬스터. ( 성문, 수호석상, ... )
//    MODEL_MONSTER01+91 ~ MODEL_MONSTER01+99        크라이울프 몬스터
//    MODEL_MONSTER01+100 ~ MODEL_MONSTER01+105    아이다 몬스터
//    MODEL_MONSTER01+106 ~ MODEL_MONSTER01+121    칸투르 몬스터
//    MODEL_MONSTER01+122                            설날 이벤트복주머니 몬스터
//  MODEL_MONSTER01+123 ~ MODEL_MONSTER01+125   이벤트맵 몬스터
//  MODEL_MONSTER01+126                            3차 체인지업 보스 몬스터
//  MODEL_MONSTER01+127                            추석 이벤트 달토끼 몬스터
//  MODEL_MONSTER01+128 ~ MODEL_MONSTER01+135    엘베란드 몬스터
//  MODEL_MONSTER01+136 ~ MODEL_MONSTER01+144    평온의늪 몬스터
//    MODEL_MONSTER01+145 ~ MODEL_MONSTER01+149    라클리온 몬스터 5종
//    MODEL_MONSTER01+150                            라클리온 보스 몬스터
//  MODEL_MONSTER01+151 ~ MODEL_MONSTER01+153    라클리온 알 3종류
//  MODEL_MONSTER01+154                         일본 여름 이벤트 몬스터 1종
//  MODEL_MONSTER01+155 ~ MODEL_MONSTER01+156   일본 크리스마스 이벤트 몬스터 2종
//  MODEL_MONSTER01+157 ~ MODEL_MONSTER01+163    PK 필드 몬스터 7종
#define MODEL_MONSTER_END    MODEL_MONSTER01+MAX_MODEL_MONSTER

#ifdef PBG_ADD_NEWCHAR_MONK
// 모델 기본 스킨 데이타 갯수 확장 20 넘진 않으나 소스간결화를 위함
#define MODEL_BODY_NUM               24
#else //PBG_ADD_NEWCHAR_MONK
#define MODEL_BODY_NUM               20
#endif //PBG_ADD_NEWCHAR_MONK

#define MODEL_ITEM_COMMON_NUM        2    // 같은 아이템이지만 모델이 다른 아이템 세트 개수. 현재 소환술사와 요정이 같이 쓰는 넝쿨, 실크 시리즈 아이템.
#ifdef PBG_ADD_NEWCHAR_MONK_ITEM
    #define MODEL_ITEM_COMMONCNT_RAGEFIGHTER    4    //같은 아이템 모델 교환위함
#endif //PBG_ADD_NEWCHAR_MONK_ITEM
#ifdef PBG_ADD_NEWCHAR_MONK_SKILL
#define DARKSIDE_TARGET_MAX        5
#endif //PBG_ADD_NEWCHAR_MONK_SKILL

//struct
#define MAX_BOIDS         40
#define MAX_FISHS         10
#define MAX_BUTTERFLES    10
//bodypart
#define BODYPART_HEAD   0
#define BODYPART_HELM   1
#define BODYPART_ARMOR  2
#define BODYPART_PANTS  3
#define BODYPART_GLOVES 4
#define BODYPART_BOOTS  5
#define MAX_BODYPART    6

/////////////////////////////State_Buff에 추가///////////////////////////////////////////

#define TELEPORT_NONE   0
#define TELEPORT_BEGIN  1
#define TELEPORT        2
#define TELEPORT_END    3
#define KIND_PLAYER  1
#define KIND_MONSTER 2
#define KIND_NPC     4
#define KIND_TRAP    8
#define KIND_OPERATE 16     // 
#define KIND_EDIT    32
#define KIND_PET     64
#define KIND_TMP     128
#define MAX_OPERATES 200
#define MAX_ITEMS 1000

////////////////////////////////////////////_Object end_//////////////////////////////////////////////////////////
////////////////////////////////////////_inventory start_/////////////////////////////////////////////////////

#define MAX_GUILD_LINE   14
#define MAX_GUILDS       80

#define MAX_MARKS   2000
#define MARK_EDIT   1999

#define MAX_PARTYS   5

#define TRADE_BUY    0
#define TRADE_SELL   1
#define TRADE_REPAIR 2

#define INVENTORY_SCALE        20
#define COLUMN_INVENTORY       8
#define ROW_INVENTORY          8
#define COLUMN_SHOP_INVENTORY  8
#define ROW_SHOP_INVENTORY     15
#define COLUMN_TRADE_INVENTORY 8
#define ROW_TRADE_INVENTORY    4
#define COLUMN_MIX_INVENTORY   8
#define ROW_MIX_INVENTORY      4
#define MAX_INVENTORY          COLUMN_INVENTORY*ROW_INVENTORY
#define MAX_SHOP_INVENTORY     COLUMN_SHOP_INVENTORY*ROW_SHOP_INVENTORY
#define MAX_TRADE_INVENTORY    COLUMN_TRADE_INVENTORY*ROW_TRADE_INVENTORY
#define MAX_MIX_INVENTORY      COLUMN_MIX_INVENTORY*ROW_MIX_INVENTORY

//equipment index
#define REQUEST_EQUIPMENT_INVENTORY 0        // 인벤토리
#define REQUEST_EQUIPMENT_TRADE 1            // 거래
#define REQUEST_EQUIPMENT_STORAGE 2            // 창고
#define REQUEST_EQUIPMENT_CHAOS_MIX 3        // 카오스 조합
#define REQUEST_EQUIPMENT_MYSHOP 4            // 개인상점
#define REQUEST_EQUIPMENT_TRAINER_MIX 5        // 조련사 조합
#define REQUEST_EQUIPMENT_ELPIS_MIX 6        // 엘피스 조합
#define REQUEST_EQUIPMENT_OSBOURNE_MIX 7    // 오스본 조합
#define REQUEST_EQUIPMENT_JERRIDON_MIX 8    // 제리든 조합
#ifdef ADD_GLOBAL_MIX_MAR08
#define REQUEST_EQUIPMENT_CHAOS_CARD_MIX 9            // 카오스 카드 조합
#define REQUEST_EQUIPMENT_CHERRYBLOSSOM_MIX 10        // 벚꽃 조합
#endif //ADD_GLOBAL_MIX_MAR08
#ifdef ADD_SOCKET_MIX
#define REQUEST_EQUIPMENT_EXTRACT_SEED_MIX 11    // 시드 추출 조합
#define REQUEST_EQUIPMENT_SEED_SPHERE_MIX 12    // 시드 스피어 합성 조합
#define REQUEST_EQUIPMENT_ATTACH_SOCKET_MIX 13    // 소켓아이템 장착 조합
#define REQUEST_EQUIPMENT_DETACH_SOCKET_MIX 14    // 소켓아이템 해제 조합
#endif    // ADD_SOCKET_MIX

#define EQUIPMENT_WEAPON_RIGHT 0
#define EQUIPMENT_WEAPON_LEFT  1
#define EQUIPMENT_HELM         2
#define EQUIPMENT_ARMOR        3
#define EQUIPMENT_PANTS        4
#define EQUIPMENT_GLOVES       5
#define EQUIPMENT_BOOTS        6
#define EQUIPMENT_WING         7
#define EQUIPMENT_HELPER       8
#define EQUIPMENT_AMULET       9
#define EQUIPMENT_RING_RIGHT   10
#define EQUIPMENT_RING_LEFT    11
#define MAX_EQUIPMENT          12

#define MAX_EQUIPMENT_INDEX            MAX_EQUIPMENT
#define MAX_MY_INVENTORY_INDEX        MAX_EQUIPMENT_INDEX + MAX_INVENTORY

#ifdef LDS_FIX_WRONG_QUANTITY_SETITEMOPTION_WHEN_RENDER_SETITEMTOOTIP_IN_INVENTORY
    #define MAX_SETITEM_OPTIONS        12        // 아이템 추가옵션 갯수 제한 수치
#endif // LDS_FIX_WRONG_QUANTITY_SETITEMOPTION_WHEN_RENDER_SETITEMTOOTIP_IN_INVENTORY

#define MAX_MY_SHOP_INVENTORY_INDEX MAX_MY_INVENTORY_INDEX + MAX_SHOP_INVENTORY

#define MAX_SHOPTITLE 36
#define COL_PERSONALSHOP_INVEN 8
#define ROW_PERSONALSHOP_INVEN 4
#define MAX_PERSONALSHOP_INVEN COL_PERSONALSHOP_INVEN*ROW_PERSONALSHOP_INVEN

#define MAX_KEYPADINPUT    ( 10)

#define TEXT_COLOR_WHITE    0
#define TEXT_COLOR_BLUE     1
#define TEXT_COLOR_RED      2
#define TEXT_COLOR_YELLOW   3
#define TEXT_COLOR_GREEN    4
#define TEXT_COLOR_DARKRED  5
#define TEXT_COLOR_PURPLE   6
#define TEXT_COLOR_DARKBLUE 7
#define TEXT_COLOR_DARKYELLOW 8
#define TEXT_COLOR_GREEN_BLUE 9
#define TEXT_COLOR_GRAY       10
#define TEXT_COLOR_REDPURPLE  11
#ifdef SOCKET_SYSTEM
    #define TEXT_COLOR_VIOLET    12
#endif    // SOCKET_SYSTEM
#ifdef KJH_ADD_PERIOD_ITEM_SYSTEM
    #define TEXT_COLOR_ORANGE    13
#endif // KJH_ADD_PERIOD_ITEM_SYSTEM

#define KOREAN  0
#define ENGLISH 1

#define ONE_HAND 0
#define TWO_HAND 1

////////////////////////////////////////_inventory end_///////////////////////////////////////////////////////

////////////////////////////////////////_LodTerrain start_//////////////////////////////////////////////////////

#define TERRAIN_SCALE     100.f
#define TERRAIN_SIZE      256
#define TERRAIN_SIZE_MASK 255

#define BLOODCASTLE_NUM 8
#define HELLAS_NUM      7
#define CHAOS_NUM       6

#define TERRAIN_MAP_NORMAL 0
#define TERRAIN_MAP_ALPHA  1
#define TERRAIN_MAP_GRASS  2
#define TERRAIN_MAP_TRAP   3

////////////////////////////////////////_LodTerrain end_//////////////////////////////////////////////////////
////////////////////////////////////////_Interface start_//////////////////////////////////////////////////////

#define MAX_WHISPER      120
#define MAX_WHISPER_LINE 6

#define EDIT_NONE    0
#define EDIT_MAPPING 1
#define EDIT_OBJECT  2
#define EDIT_WALL    3
#define EDIT_HEIGHT  4
#define EDIT_LIGHT   5
#define EDIT_SOUND   6
#define EDIT_MONSTER 7

#define IME_CONVERSIONMODE  1
#define IME_SENTENCEMODE    2

#define AUTOATTACK_ON   0x01    //  자동공격 설정.
#define AUTOATTACK_OFF  0x02    //  자동공격 취소.

#define WHISPER_SOUND_ON    0x04//  귓속말 알림음 On.
#define WHISPER_SOUND_OFF   0x08//  귓속말 알림음 Off.
#define SLIDE_HELP_OFF     0x10

#define RT3_SORT_LEFT 1                // 왼쪽 정렬
#define RT3_SORT_LEFT_CLIP 2        // 왼쪽 정렬 & 스크롤(왼쪽 클리핑)
#define RT3_SORT_CENTER 3            // 가운데 정렬
#define RT3_SORT_RIGHT 4            // 오른쪽 정렬

#define RT3_WRITE_RIGHT_TO_LEFT 7    // 좌표 기준으로 왼쪽으로 쓰기
#define RT3_WRITE_CENTER 8            // 좌표 기준으로 중앙에 쓰기 (RenderErrorMessage)

#define CHAOS_MIX_LEVEL 10

#define MOVEMENT_MOVE    0
#define MOVEMENT_GET     1
#define MOVEMENT_TALK    2
#define MOVEMENT_ATTACK  3
#define MOVEMENT_OPERATE 4
#define MOVEMENT_SKILL     5

#define MAX_WHISPER_ID 5

//////////////////////////////////////////_Interface end_//////////////////////////////////////////////////////
//////////////////////////////////////////_Infomation start_///////////////////////////////////////////////////

#define MAX_ID_SIZE            10

#ifdef LDS_MODIFY_CHAR_LENGTH_USERPASSWORD    // 비밀번호 자릿수 10->12로 변경 사항
    #if SELECTED_LANGUAGE == LANGUAGE_KOREAN
        #define MAX_PASSWORD_SIZE    12
    #else //한국아닌경우 10자리
        #define MAX_PASSWORD_SIZE    10
    #endif //SELECTED_LANGUAGE == LANGUAGE_KOREAN
#endif // LDS_MODIFY_CHAR_LENGTH_USERPASSWORD
#ifdef LDK_MOD_PASSWORD_LENGTH_20 // 글로벌 포털 비밀번호 20 자리로 변경
        #define MAX_PASSWORD_SIZE    20
#endif //LDK_MOD_PASSWORD_LENGTH_20

#ifdef LJH_ADD_ONETIME_PASSWORD
#define MAX_ONETIME_PASSWORD_SIZE    6
#endif //LJH_ADD_ONETIME_PASSWORD


#if SELECTED_LANGUAGE == LANGUAGE_JAPANESE
#define    CHAR_DEL_LIMIT_LV    180        // 캐릭터 삭제 제한 레벨
#elif SELECTED_LANGUAGE == LANGUAGE_ENGLISH
#define CHAR_DEL_LIMIT_LV    300        // 글로벌 캐릭터 삭제 제한 레벨
#else    //SELECTED_LANGUAGE == LANGUAGE_JAPANESE
#define    CHAR_DEL_LIMIT_LV    220        // 캐릭터 삭제 제한 레벨
#endif    //SELECTED_LANGUAGE == LANGUAGE_JAPANESE

#define MAX_TEXTS               3000
#define MAX_GLOBAL_TEXT_STRING    300
#define MAX_FILTERS 1000

#define MAX_NAMEFILTERS 500

#ifdef LJH_ADD_SUPPORTING_MULTI_LANGUAGE
#define MAX_LETTER_TITLE_LENGTH        60
#define MAX_LETTERTEXT_LENGTH        1000
#define MAX_CHATROOM_TEXT_LENGTH    150
#define MAX_LANGUAGE_NAME_LENGTH    4
#endif //LJH_ADD_SUPPORTING_MULTI_LANGUAGE


#define MAX_GATES           512
#define MAX_DIALOG            200

#ifdef KJH_ADD_INGAMESHOP_UI_SYSTEM
#define MAX_GIFT_MESSAGE_SIZE    200
#endif // KJH_ADD_INGAMESHOP_UI_SYSTEM

// #if SELECTED_LANGUAGE == LANGUAGE_VIETNAMESE
//     #define MAX_LENGTH_DIALOG        ( 400)
// #else
    #define MAX_LENGTH_DIALOG        ( 300)
// #endif //SELECTED_LANGUAGE == LANGUAGE_VIETNAMESE

#define MAX_ANSWER_FOR_DIALOG    ( 10)

// #if SELECTED_LANGUAGE == LANGUAGE_VIETNAMESE
//     #define MAX_LENGTH_ANSWER        ( 128)
// #else
    #define MAX_LENGTH_ANSWER        ( 64)
// #endif //SELECTED_LANGUAGE == LANGUAGE_VIETNAMESE

#define MAX_ITEM_TYPE      16

//2005년 7.12일 아이템 인덱스 확장
#define MAX_ITEM_INDEX     512

#define MAX_ITEM           (MAX_ITEM_TYPE*MAX_ITEM_INDEX)

#ifdef PJH_ADD_MINIMAP
#define MAX_MINI_MAP_DATA    100
#endif //PJH_ADD_MINIMAP
#ifdef PJH_ADD_MASTERSKILL
#define    MAX_MASTER           24
#else
#define    MAX_MASTER           20
#endif
#define MAX_ITEM_SPECIAL   8
#define ITEM_LEVEL_NORMAL  4
#define MAX_QUEST_ITEM     64  //  늘어나면 추가된다.
#define MAX_EVENT_ITEM     35  //  늘어나면 추가된다.

#ifdef SOCKET_SYSTEM
#define MAX_SOCKETS            5        // 아이템당 최대 소켓수
#define SOCKET_EMPTY        0xFF    // 빈 소켓
#endif    // SOCKET_SYSTEM

//item index
#define ITEM_SWORD         (0)   //pal,etc
#define ITEM_AXE         (1*MAX_ITEM_INDEX)  //ran,dru
#define ITEM_MACE         (2*MAX_ITEM_INDEX)  //ran,nec
#define ITEM_SPEAR         (3*MAX_ITEM_INDEX)  //ama
#define ITEM_BOW         (4*MAX_ITEM_INDEX)  //ama
#define ITEM_STAFF         (5*MAX_ITEM_INDEX)  //soc
#define ITEM_SHIELD         (6*MAX_ITEM_INDEX)
#define ITEM_HELM         (7*MAX_ITEM_INDEX)
#define ITEM_ARMOR         (8*MAX_ITEM_INDEX)
#define ITEM_PANTS         (9*MAX_ITEM_INDEX)
#define ITEM_GLOVES         (10*MAX_ITEM_INDEX)
#define ITEM_BOOTS         (11*MAX_ITEM_INDEX)
#define ITEM_WING         (12*MAX_ITEM_INDEX)
#define ITEM_HELPER         (13*MAX_ITEM_INDEX)
#define ITEM_POTION       (14*MAX_ITEM_INDEX)
#define ITEM_ETC          (15*MAX_ITEM_INDEX)

#define MAX_RESISTANCE        7

#ifdef PBG_ADD_NEWCHAR_MONK
#define MAX_CLASS            7
#else //PBG_ADD_NEWCHAR_MONK
#define MAX_CLASS            6
#endif //PBG_ADD_NEWCHAR_MONK

#ifdef ASG_FIX_MONSTER_MAX_COUNT_1024
#define MAX_MONSTER            1024
#else    // ASG_FIX_MONSTER_MAX_COUNT_1024
#define MAX_MONSTER            512
#endif    // ASG_FIX_MONSTER_MAX_COUNT_1024

#define MAX_SKILLS            600

#define MAX_DUTY_CLASS        3

#define SKILL_SWORD            0
#define SKILL_MACE             2
#define SKILL_BOW              3
#define SKILL_SPEAR            4
#define SKILL_STAFF            5

#define SKILL_CRY              8
#define SKILL_INVINCIBILITY    9
#define SKILL_DUAL_WEAPON      10
#define SKILL_BASH             11
#define SKILL_HEALING          12
#define SKILL_SACRIFICE        13

#define SKILL_STEALTH          16
#define SKILL_TRAP             17
#define SKILL_JAP              19
#define SKILL_TELEPORT         20
#define SKILL_DECOY            21

#define SKILL_MULTIPLE_SHOT    24
#define SKILL_CHARM            25
#define SKILL_CONFUSE          26
#define SKILL_CHANGE_SHAPE     27
#define SKILL_INFRAVISION      28
#define SKILL_PROTECTION       29

#define SKILL_FIRE             32
#define SKILL_COLD             33
#define SKILL_MANA             35
#define SKILL_ANTIDOTE         36
#define SKILL_REFLECTION       37

///////////////////////////////////////////_Infomation end_//////////////////////////////////////////////////////
////////////////////////////////////////////_effect start_//////////////////////////////////////////////////////

#ifdef YDG_MOD_SEPARATE_EFFECT_SKILLS
#define MAX_EFFECTS       200
#define MAX_SKILL_EFFECTS 100
#else    // YDG_MOD_SEPARATE_EFFECT_SKILLS
#ifdef YDG_FIX_CLIENT_SKILL_EFFECT_SIZE
#define MAX_EFFECTS       1000
#else    // YDG_FIX_CLIENT_SKILL_EFFECT_SIZE
#define MAX_EFFECTS       200
#endif    // YDG_FIX_CLIENT_SKILL_EFFECT_SIZE
#endif    // YDG_MOD_SEPARATE_EFFECT_SKILLS
#define MAX_SPRITES       1000
#define MAX_PARTICLES     3000
#define MAX_LEAVES        200

#ifdef DEVIAS_XMAS_EVENT
    #define MAX_LEAVES_DOUBLE 400
#endif // DEVIAS_XMAS_EVENT

#define MAX_POINTS        100
#define MAX_POINTERS      100

//////////////////////////////////////////_effect end_//////////////////////////////////////////////////////
//////////////////////////////////////////_character start_//////////////////////////////////////////////////

#define MAX_CHARACTERS_CLIENT  400
#define MAX_CHARACTERS_SERVER  10

#define MAX_PATH_FIND 15

#define ATTACK_FAIL    0
#define ATTACK_SUCCESS 1
#define ATTACK_DIE     2

#define ABILITY_FAST_ATTACK_SPEED    ( 0x01)
#define ABILITY_PLUS_DAMAGE            ( 0x02)
#define ABILITY_FAST_ATTACK_RING    ( 0x04)
#define ABILITY_FAST_ATTACK_SPEED2    ( 0x08)

#define CTLCODE_01BLOCKCHAR            ( 0x01)
#define CTLCODE_02BLOCKITEM            ( 0x02)
#define CTLCODE_04FORTV                ( 0x04)
#define CTLCODE_08OPERATOR            ( 0x08)
#define CTLCODE_10ACCOUNT_BLOCKITEM    ( 0x10)
#define CTLCODE_20OPERATOR            ( 0x20)
#define CTLCODE_80MANAGER_MOVE_CHAR    ( 0x80)

// PvP레벨
#define PVP_HERO2        1
#define PVP_HERO1        2
#define PVP_NEUTRAL        3
#define PVP_CAUTION        4
#define PVP_MURDERER1    5
#define PVP_MURDERER2    6

#define REGIMENT_NONE       0
#define REGIMENT_DEFENSE    1
#define REGIMENT_ATTACK     2

#define MAX_JOINTS 500
#define MAX_TAILS  50

#define RENDER_FACE_ONE 0x01
#define RENDER_FACE_TWO 0x02


//////////////////////////////////////////_character end_/////////////////////////////////////////////////

/////////////////////////////////////////////_ai start_/////////////////////////////////////////////////

#define MONSTER01_STOP1    0
#define MONSTER01_STOP2    1
#define MONSTER01_WALK     2
#define MONSTER01_ATTACK1  3
#define MONSTER01_ATTACK2  4
#define MONSTER01_SHOCK    5
#define MONSTER01_DIE      6
#define MONSTER01_APEAR    7
#define MONSTER01_ATTACK3  8
#define MONSTER01_ATTACK4  9
#define MONSTER01_RUN      10
#define MONSTER01_ATTACK5  11

#define FENRIR_STAND        0    // 정지
#define FENRIR_WALK            1    // 걷기
#define FENRIR_RUN            2    // 달리기
#define FENRIR_ATTACK        3    // 일반공격
#define FENRIR_ATTACK_SKILL    4    // 스킬공격
#define FENRIR_DAMAGE        5    // 데미지
#define FENRIR_RUN_DELAY    20    // 펜릴 걷는 딜레이 값

/////////////////////////////////////////////_ai end_///////////////////////////////////////////////////
////////////////////////////////////////_publicfile start_//////////////////////////////////////////////

#define MAX_MAGIC                    64    // 사용자당 최대 마법 개수

//----------------------------------------------------------------------------
// 저항력 번호
#define RESISTANCE_COLD                0
#define RESISTANCE_POISON            1
#define RESISTANCE_THUNDER            2
#define RESISTANCE_FIRE                3
#define RESISTANCE_EARTH            4
#define RESISTANCE_WIND             5
#define RESISTANCE_WATER            6

//#define MAX_SKILL                    256

////////////////////////////////////////_publicfile end_//////////////////////////////////////////////////////
////////////////////////////////////_npcbreederfile start_////////////////////////////////////////////////////

#define WM_GRAPHNOTIFY  WM_USER+13
#define MOVIE_FILE_TXT    "Data\\Movie\\Movie.txt"
#define MOVIE_FILE_WMV    "Data\\Movie\\MU.wmv"

/////////////////////////////////////_npcbreederfile end_//////////////////////////////////////////////////////
//////////////////////////////////////_matchevent start_//////////////////////////////////////////////////////

#define MAX_BLOOD_CASTLE_MEN    10
#define MAX_CHAOS_CASTLE_MEN    100

////////////////////////////////////////_matchevent end_//////////////////////////////////////////////////////
////////////////////////////////////_gmbattlecastle start_////////////////////////////////////////////////////


#define BATTLE_CASTLE_WALL1 61
#define BATTLE_CASTLE_WALL2 62
#define BATTLE_CASTLE_WALL3 63
#define BATTLE_CASTLE_WALL4 64


//////////////////////////////////////_gmbattlecastle end_////////////////////////////////////////////////////
////////////////////////////////////_gm_kanturu_2nd start_////////////////////////////////////////////////////

#define DREADFEAR_ATTACK2_MOTION_COUNT 2

#define KANTURU2ND_STATETEXT_MAX    3
#define KANTURU2ND_REFRESH_GAPTIME    2000
#define KANTURU2ND_REFRESHBUTTON_GAPTIME 1000

#define KANTURU2ND_NPC_ANI_STOP    0
#define KANTURU2ND_NPC_ANI_ROT    1


//////////////////////////////////////_gm_kanturu_2nd end_////////////////////////////////////////////////////
/////////////////////////////////////_cswaterterrain start_////////////////////////////////////////////////////

#define WATER_TERRAIN_SIZE      256
#define MAX_WATER_SIZE          4
#define MAX_WATER_GRID          42
#define VIEW_WATER_GRID         100
#define WAVE_SCALE              50.f

//////////////////////////////////////_cswaterterrain end_////////////////////////////////////////////////////
/////////////////////////////////////////_csquest start_////////////////////////////////////////////////////

#define MAX_QUESTS          200
#define MAX_QUEST_CONDITION 16
#define MAX_QUEST_REQUEST   16
#define MAX_QUEST_TEXT      100

#define NUM_LINE_DA                ( 1)
#define MAX_LENGTH_CMB            ( 38)
#define NUM_LINE_CMB            ( 7)

#define MAX_DEVIL_SQUARE_ENTER  6
#define BLOODCASTLE_QUEST_NUM   3


//////////////////////////////////////////_csquest end_////////////////////////////////////////////////////
/////////////////////////////////////_csmapinterface start_////////////////////////////////////////////////////

#define MAX_GUILD_COMMAND   7

/////////////////////////////////////_csmapinterface end_////////////////////////////////////////////////////
/////////////////////////////////////_cscommand stracter_////////////////////////////////////////////////////

#define MAX_COMMAND         13
#define MAX_DISTANCE_TILE   2

/////////////////////////////////////_cscommand end_////////////////////////////////////////////////////
////////////////////////////////_cmvp1stdirection start_////////////////////////////////////////////////////

#define MONSTERNUM 50
#define NUMOFMON 10000

/////////////////////////////////////_cmvp1stdirection end_////////////////////////////////////////////////////
/////////////////////////////////////_cdirection start_////////////////////////////////////////////////////

#define NUMOFMON 10000

/////////////////////////////////////_cdirection end_////////////////////////////////////////////////////
/////////////////////////////////////_ccomgem start_////////////////////////////////////////////////////

#define INDEX_COMPILED_CELE        ITEM_WING+30
#define INDEX_COMPILED_SOUL        ITEM_WING+31
#define MODEL_COMPILED_CELE        MODEL_WING+30
#define MODEL_COMPILED_SOUL        MODEL_WING+31
#define MAX_LINE_UNMIXLIST        8
//NPC 인덱스
#define INDEX_NPC_LAHAP            9
#define MAX_BUFF_SLOT_INDEX     16

/////////////////////////////////////_ccomgem end_////////////////////////////////////////////////////

#ifdef NEW_COMMANDS

//opengl
#define OPENGL_COLOR4UB(color)\
{\
    ::glColor4ub( static_cast<GLubyte>(color.Red()), static_cast<GLubyte>(color.Green()),\
    static_cast<GLubyte>(color.Blue()), static_cast<GLubyte>(color.Alpha()) );\
}

#define OPENGL_TEXCOORD2F(uv)\
{\
    ::glTexCoord2f( uv.x, uv.y );\
}

#define OPENGL_VERTEX2F(pos)\
{\
    ::glVertex2f(pos.x, pos.y );\
}

#define OPENGL_BINDTEXTURE(otype, bitmap)\
{\
    ::glBindTexture(otype, bitmap);\
}

#define OPENGL_BEGIN(otype)\
{\
    ::glBegin(otype);\
}

#define OPENGL_END()\
{\
    ::glEnd();\
}

#define OPENGL_ENABLE(otype)\
{\
    ::glEnable(otype);\
}

#define OPENGL_DISABLE(otype)\
{\
    ::glDisable(otype);\
}

#define DRAWLINE( start, end, color )\
{\
    OPENGL_COLOR4UB(color);\
    OPENGL_BEGIN(GL_LINES);\
    OPENGL_VERTEX2F( CoordF( static_cast<float>(start.x), static_cast<float>(start.y) ) );\
    OPENGL_VERTEX2F( DimF( static_cast<float>(end.x), static_cast<float>(end.y) ) );\
    OPENGL_END();\
}

#define DRAWRECT( rpos, rsize, color )\
{\
    DRAWLINE( Coord( rpos.x, rpos.y ),                        Coord( rpos.x, rpos.y - rsize.y ),                color );\
    DRAWLINE( Coord( rpos.x, rpos.y - rsize.y ),            Coord( rpos.x + rsize.x, rpos.y - rsize.y ),    color );\
    DRAWLINE( Coord( rpos.x + rsize.x, rpos.y - rsize.y ),    Coord( rpos.x + rsize.x, rpos.y ),                color );\
    DRAWLINE( Coord( rpos.x + rsize.x, rpos.y ),            Coord( rpos.x, rpos.y ),                        color );\
}

//client defines
#define STRUCTSMEMBERNAME            60
#ifdef MODIFY_SOCKET_PROTOCOL
#define ITEM_BUFFER_SIZE            12        // 소켓 확장으로 아이템 구조체 크기 확장
#else    // MODIFY_SOCKET_PROTOCOL
#define ITEM_BUFFER_SIZE            7
#endif    // MODIFY_SOCKET_PROTOCOL
#define MAX_CASHITEM_LIST_CATEGORY    4        // 캐쉬샵 아이템 리스트 최대 카테고리 수
#define MAX_CASHITEM_LIST_PAGE        15        // 캐쉬샵 아이템 리스트 최대 페이지 개수
#define MAX_CASHITEM_LIST_PER_PAGE    9        // 캐쉬샵 아이템 페이지당 아이템 개수
#define MAX_CASHITEM_LIST            ( MAX_CASHITEM_LIST_CATEGORY * MAX_CASHITEM_LIST_PAGE * MAX_CASHITEM_LIST_PER_PAGE )

#endif //NEW_COMMANDS

#ifdef KWAK_ADD_DEFINE_UTIL
//===================================================================
// DEBUG
//===================================================================
#ifdef _DEBUG
    #define DEBUG_CLIENTBLOCK    new//new(_CLIENT_BLOCK, __FILE__, __LINE__)
#else
    #define DEBUG_CLIENTBLOCK
#endif

#ifndef ARRAY_COUNT
    #define ARRAY_COUNT( array )     ( sizeof(array) / sizeof((array)[0]) )
#endif

#ifndef HAVE_BIT
    #define HAVE_BIT(X, Y)            ( (X & Y) ? TRUE : FALSE )
#endif

#ifndef ADD_BIT
    #define ADD_BIT(X, Y)            ( X |= Y )
#endif

#ifndef DELETE_BIT
    #define DELETE_BIT(X, Y)        ( X &= (~Y) )
#endif

#ifndef SET_SIZE_EMPTY
    #define SET_SIZE_EMPTY(X)        { X.cx = 0;    X.cy = 0;    }
#endif
#endif // KWAK_ADD_DEFINE_UTIL

#ifdef NEW_USER_INTERFACE_UISYSTEM
    #define ITEMINFOCOUNT 30
#endif //NEW_USER_INTERFACE_UISYSTEM

#define MAX_TEXT_LENGTH        255
 
bir ekran görüntüsü alalım mı çok merak etim piyasa düşmeyen src değil metin2 src gameforge 2013 yıllında bir firma ile anlaştı ardından oyun tekrar düzelince gene kendi ekibi ile yapmaya karar verdi kodlar o firmadan sızdırıldı başkada sızdırma yok ki bu avrupada benimde takip ettiğim mahkeme hala dava sürüyor yani hocam metin2 de baktım pantolon yok :D yani neden bu tarz bir konu açıp böyle birşey yapma gereğinde bulundunuz zaten files günlüğüm diyorsunuz bu kadar insan ki hepsi benden iyi biliyorlar bende şahsi görüşüm böyle define yok :D açın bu bunun diyin en azından olmuyan sistemleri gösterin ki bizde ha evet doğru diyor files günlüğü açarsın bak ilk 5 define bu ekran görüntüleri bu dersin bana cok samimi gelmedi
 
OpenGL' yi Metin2 ye uyarlamak her yiğidin harcı değil açıkçası. Üst düzey bir bilgi birikimi gerektiriyor. Sadece Metin2 hakkında değil, grafik programlama konusunda da bilgi isteyen bir durum. Bunu yapan veya yapabilen birinin de bu şekilde dosyayı ücretsiz dağıtacağı pek mümkün gelmiyor bana.
Ayrıca listede bir çok mantık hatası var. Son olarak bu dosyanın Metin2 ye ait olup olmadığı bile meçhul gibi geldi bana.
 
Paylaşılan define dosyası, WebZen'in oyunu olan MU Online'ın (MMORPG) 2021 yılında sızdırılan kaynak kodlarından alıntıdır, bu oyunu yapan ekip uzun zamandır Metin2 güncellemelerini de üstlenmekte bu yüzden stil size tanıdık gelmiş olabilir, saygılar. :)

Ufak bir ekleme yapayım, kaynak kodları 2021 yılında meşhur bir forumda paylaşıldı fakat kaynak kodları 2010 - 2012 yıllarına ait, güncel kodlar değil, küçük bir kanıtta ekleyeyim de havaya konuşmuş olmayalım, isteyen indirip bakabilir;

7ww3zu9.png
 
Son düzenleme:
Paylaşılan define dosyası, WebZen'in oyunu olan MU Online'ın (MMORPG) 2021 yılında sızdırılan kaynak kodlarından alıntıdır, bu oyunu yapan ekip uzun zamandır Metin2 güncellemelerini de üstlenmekte bu yüzden stil size tanıdık gelmiş olabilir, saygılar. :)
şu yorumdan sonra foruma girmezdim
 
Geri
Üst