701 lines
20 KiB
C
701 lines
20 KiB
C
#pragma once
|
|
|
|
//#include <vector>
|
|
#include "SkillBaseFile.h"
|
|
#include "GameDefine.h"
|
|
#include "SGameAniType.h"
|
|
#include <dump/XException.h>
|
|
|
|
/// 2010.11.30 - prodongi
|
|
struct _MOTION_SET
|
|
{
|
|
void clear()
|
|
{
|
|
memset(this, 0, sizeof(*this));
|
|
}
|
|
|
|
_MOTION_SET()
|
|
{
|
|
clear();
|
|
}
|
|
|
|
int GetAniId( int nRace, int nSex, int nAniClass )
|
|
{
|
|
if( nRace == GCLAN_GAIA ) {
|
|
if( nSex == SEX_FEMALE ) {
|
|
switch( nAniClass ) {
|
|
case ANICLS_UNA : return szGaia_f_unarmored;
|
|
case ANICLS_SWO : return szGaia_f_one_hand_sword;
|
|
case ANICLS_SWA : return szGaia_f_two_hand_sword;
|
|
case ANICLS_SPA : return szGaia_f_two_hand_spear;
|
|
case ANICLS_BWA : return szGaia_f_bow;
|
|
case ANICLS_DGO : return szGaia_f_one_hand_dagger;
|
|
case ANICLS_SWT : return szGaia_f_double_sword;
|
|
case ANICLS_DGT : return szGaia_f_double_dagger;
|
|
case ANICLS_SFO : return szGaia_f_one_hand_staff;
|
|
case ANICLS_SFA : return szGaia_f_two_hand_staff;
|
|
case ANICLS_AXO : return szGaia_f_one_hand_axe;
|
|
case ANICLS_AXA : return szGaia_f_two_hand_axe;
|
|
case ANICLS_AXT : return szGaia_f_double_axe;
|
|
case ANICLS_MAO : return szGaia_f_one_hand_mace;
|
|
case ANICLS_MAA : return szGaia_f_two_hand_mace;
|
|
case ANICLS_CBO : return szGaia_f_cross_bow;
|
|
}
|
|
}
|
|
else if( nSex == SEX_MALE ) {
|
|
switch( nAniClass ) {
|
|
case ANICLS_UNA : return szGaia_m_unarmored;
|
|
case ANICLS_SWO : return szGaia_m_one_hand_sword;
|
|
case ANICLS_SWA : return szGaia_m_two_hand_sword;
|
|
case ANICLS_SPA : return szGaia_m_two_hand_spear;
|
|
case ANICLS_BWA : return szGaia_m_bow;
|
|
case ANICLS_DGO : return szGaia_m_one_hand_dagger;
|
|
case ANICLS_SWT : return szGaia_m_double_sword;
|
|
case ANICLS_DGT : return szGaia_m_double_dagger;
|
|
case ANICLS_SFO : return szGaia_m_one_hand_staff;
|
|
case ANICLS_SFA : return szGaia_m_two_hand_staff;
|
|
case ANICLS_AXO : return szGaia_m_one_hand_axe;
|
|
case ANICLS_AXA : return szGaia_m_two_hand_axe;
|
|
case ANICLS_AXT : return szGaia_m_double_axe;
|
|
case ANICLS_MAO : return szGaia_m_one_hand_mace;
|
|
case ANICLS_MAA : return szGaia_m_two_hand_mace;
|
|
case ANICLS_CBO : return szGaia_m_cross_bow;
|
|
}
|
|
}
|
|
}
|
|
else if( nRace == GCLAN_DEVA ) {
|
|
if( nSex == SEX_FEMALE ) {
|
|
switch( nAniClass ) {
|
|
case ANICLS_UNA : return szDeva_f_unarmored;
|
|
case ANICLS_SWO : return szDeva_f_one_hand_sword;
|
|
case ANICLS_SWA : return szDeva_f_two_hand_sword;
|
|
case ANICLS_SPA : return szDeva_f_two_hand_spear;
|
|
case ANICLS_BWA : return szDeva_f_bow;
|
|
case ANICLS_DGO : return szDeva_f_one_hand_dagger;
|
|
case ANICLS_SWT : return szDeva_f_double_sword;
|
|
case ANICLS_DGT : return szDeva_f_double_dagger;
|
|
case ANICLS_SFO : return szDeva_f_one_hand_staff;
|
|
case ANICLS_SFA : return szDeva_f_two_hand_staff;
|
|
case ANICLS_AXO : return szDeva_f_one_hand_axe;
|
|
case ANICLS_AXA : return szDeva_f_two_hand_axe;
|
|
case ANICLS_AXT : return szDeva_f_double_axe;
|
|
case ANICLS_MAO : return szDeva_f_one_hand_mace;
|
|
case ANICLS_MAA : return szDeva_f_two_hand_mace;
|
|
case ANICLS_CBO : return szDeva_f_cross_bow;
|
|
}
|
|
}
|
|
else if( nSex == SEX_MALE ) {
|
|
switch( nAniClass ) {
|
|
case ANICLS_UNA : return szDeva_m_unarmored;
|
|
case ANICLS_SWO : return szDeva_m_one_hand_sword;
|
|
case ANICLS_SWA : return szDeva_m_two_hand_sword;
|
|
case ANICLS_SPA : return szDeva_m_two_hand_spear;
|
|
case ANICLS_BWA : return szDeva_m_bow;
|
|
case ANICLS_DGO : return szDeva_m_one_hand_dagger;
|
|
case ANICLS_SWT : return szDeva_m_double_sword;
|
|
case ANICLS_DGT : return szDeva_m_double_dagger;
|
|
case ANICLS_SFO : return szDeva_m_one_hand_staff;
|
|
case ANICLS_SFA : return szDeva_m_two_hand_staff;
|
|
case ANICLS_AXO : return szDeva_m_one_hand_axe;
|
|
case ANICLS_AXA : return szDeva_m_two_hand_axe;
|
|
case ANICLS_AXT : return szDeva_m_double_axe;
|
|
case ANICLS_MAO : return szDeva_m_one_hand_mace;
|
|
case ANICLS_MAA : return szDeva_m_two_hand_mace;
|
|
case ANICLS_CBO : return szDeva_m_cross_bow;
|
|
}
|
|
}
|
|
}
|
|
else if( nRace == GCLAN_ASURA ) {
|
|
if( nSex == SEX_FEMALE ) {
|
|
switch( nAniClass ) {
|
|
case ANICLS_UNA : return szAsura_f_unarmored;
|
|
case ANICLS_SWO : return szAsura_f_one_hand_sword;
|
|
case ANICLS_SWA : return szAsura_f_two_hand_sword;
|
|
case ANICLS_SPA : return szAsura_f_two_hand_spear;
|
|
case ANICLS_BWA : return szAsura_f_bow;
|
|
case ANICLS_DGO : return szAsura_f_one_hand_dagger;
|
|
case ANICLS_SWT : return szAsura_f_double_sword;
|
|
case ANICLS_DGT : return szAsura_f_double_dagger;
|
|
case ANICLS_SFO : return szAsura_f_one_hand_staff;
|
|
case ANICLS_SFA : return szAsura_f_two_hand_staff;
|
|
case ANICLS_AXO : return szAsura_f_one_hand_axe;
|
|
case ANICLS_AXA : return szAsura_f_two_hand_axe;
|
|
case ANICLS_AXT : return szAsura_f_double_axe;
|
|
case ANICLS_MAO : return szAsura_f_one_hand_mace;
|
|
case ANICLS_MAA : return szAsura_f_two_hand_mace;
|
|
case ANICLS_CBO : return szAsura_f_cross_bow;
|
|
<<<<<<< HEAD
|
|
case ANICLS_CBT : return szAsura_f_double_crossbow;
|
|
=======
|
|
case ANICLS_CBT : return szAsura_f_double_crossbow; // From ZONE source; dual crossbows
|
|
>>>>>>> a34328224e914a577b99c79ec6e8ffbcea554a05
|
|
}
|
|
}
|
|
else if( nSex == SEX_MALE ) {
|
|
switch( nAniClass ) {
|
|
case ANICLS_UNA : return szAsura_m_unarmored;
|
|
case ANICLS_SWO : return szAsura_m_one_hand_sword;
|
|
case ANICLS_SWA : return szAsura_m_two_hand_sword;
|
|
case ANICLS_SPA : return szAsura_m_two_hand_spear;
|
|
case ANICLS_BWA : return szAsura_m_bow;
|
|
case ANICLS_DGO : return szAsura_m_one_hand_dagger;
|
|
case ANICLS_SWT : return szAsura_m_double_sword;
|
|
case ANICLS_DGT : return szAsura_m_double_dagger;
|
|
case ANICLS_SFO : return szAsura_m_one_hand_staff;
|
|
case ANICLS_SFA : return szAsura_m_two_hand_staff;
|
|
case ANICLS_AXO : return szAsura_m_one_hand_axe;
|
|
case ANICLS_AXA : return szAsura_m_two_hand_axe;
|
|
case ANICLS_AXT : return szAsura_m_double_axe;
|
|
case ANICLS_MAO : return szAsura_m_one_hand_mace;
|
|
case ANICLS_MAA : return szAsura_m_two_hand_mace;
|
|
case ANICLS_CBO : return szAsura_m_cross_bow;
|
|
<<<<<<< HEAD
|
|
case ANICLS_CBT : return szAsura_m_double_crossbow;
|
|
=======
|
|
case ANICLS_CBT : return szAsura_m_double_crossbow; // From ZONE source; dual crossbows
|
|
>>>>>>> a34328224e914a577b99c79ec6e8ffbcea554a05
|
|
}
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
int nID;
|
|
char szStringID[64];
|
|
|
|
int szDeva_m_unarmored;
|
|
int szDeva_m_one_hand_sword;
|
|
int szDeva_m_two_hand_sword;
|
|
int szDeva_m_double_sword;
|
|
int szDeva_m_one_hand_dagger;
|
|
int szDeva_m_double_dagger;
|
|
int szDeva_m_two_hand_spear;
|
|
int szDeva_m_one_hand_axe; ///< VARCHAR(64) , -- 10
|
|
int szDeva_m_two_hand_axe;
|
|
int szDeva_m_double_axe; ///< VARCHAR(64) , -- 12
|
|
int szDeva_m_one_hand_staff;
|
|
int szDeva_m_two_hand_staff;
|
|
int szDeva_m_one_hand_mace;
|
|
int szDeva_m_two_hand_mace;
|
|
int szDeva_m_bow;
|
|
int szDeva_m_cross_bow;
|
|
|
|
int szDeva_f_unarmored;
|
|
int szDeva_f_one_hand_sword;
|
|
int szDeva_f_two_hand_sword;
|
|
int szDeva_f_double_sword;
|
|
int szDeva_f_one_hand_dagger;
|
|
int szDeva_f_double_dagger;
|
|
int szDeva_f_two_hand_spear;
|
|
int szDeva_f_one_hand_axe; ///< VARCHAR(64) , -- 26
|
|
int szDeva_f_two_hand_axe;
|
|
int szDeva_f_double_axe; ///< VARCHAR(64) , -- 28
|
|
int szDeva_f_one_hand_staff;
|
|
int szDeva_f_two_hand_staff;
|
|
int szDeva_f_one_hand_mace;
|
|
int szDeva_f_two_hand_mace;
|
|
int szDeva_f_bow;
|
|
int szDeva_f_cross_bow;
|
|
|
|
int szAsura_m_unarmored;
|
|
int szAsura_m_one_hand_sword;
|
|
int szAsura_m_two_hand_sword;
|
|
int szAsura_m_double_sword;
|
|
int szAsura_m_one_hand_dagger;
|
|
int szAsura_m_double_dagger;
|
|
int szAsura_m_two_hand_spear;
|
|
int szAsura_m_one_hand_axe; ///< VARCHAR(64) , -- 42
|
|
int szAsura_m_two_hand_axe;
|
|
int szAsura_m_double_axe; ///< VARCHAR(64) , -- 44
|
|
int szAsura_m_one_hand_staff;
|
|
int szAsura_m_two_hand_staff;
|
|
int szAsura_m_one_hand_mace;
|
|
int szAsura_m_two_hand_mace;
|
|
int szAsura_m_bow;
|
|
int szAsura_m_cross_bow;
|
|
int szAsura_m_double_crossbow;
|
|
|
|
int szAsura_f_unarmored;
|
|
int szAsura_f_one_hand_sword;
|
|
int szAsura_f_two_hand_sword;
|
|
int szAsura_f_double_sword;
|
|
int szAsura_f_one_hand_dagger;
|
|
int szAsura_f_double_dagger;
|
|
int szAsura_f_two_hand_spear;
|
|
int szAsura_f_one_hand_axe; ///< VARCHAR(64) , -- 58
|
|
int szAsura_f_two_hand_axe;
|
|
int szAsura_f_double_axe; ///< VARCHAR(64) , -- 60
|
|
int szAsura_f_one_hand_staff;
|
|
int szAsura_f_two_hand_staff;
|
|
int szAsura_f_one_hand_mace;
|
|
int szAsura_f_two_hand_mace;
|
|
int szAsura_f_bow;
|
|
int szAsura_f_cross_bow;
|
|
int szAsura_f_double_crossbow;
|
|
|
|
int szGaia_m_unarmored;
|
|
int szGaia_m_one_hand_sword;
|
|
int szGaia_m_two_hand_sword;
|
|
int szGaia_m_double_sword;
|
|
int szGaia_m_one_hand_dagger;
|
|
int szGaia_m_double_dagger;
|
|
int szGaia_m_two_hand_spear;
|
|
int szGaia_m_one_hand_axe; ///< VARCHAR(64) , -- 73
|
|
int szGaia_m_two_hand_axe;
|
|
int szGaia_m_double_axe; ///< VARCHAR(64) , -- 75
|
|
int szGaia_m_one_hand_staff;
|
|
int szGaia_m_two_hand_staff;
|
|
int szGaia_m_one_hand_mace;
|
|
int szGaia_m_two_hand_mace;
|
|
int szGaia_m_bow;
|
|
int szGaia_m_cross_bow;
|
|
|
|
int szGaia_f_unarmored;
|
|
int szGaia_f_one_hand_sword;
|
|
int szGaia_f_two_hand_sword;
|
|
int szGaia_f_double_sword;
|
|
int szGaia_f_one_hand_dagger;
|
|
int szGaia_f_double_dagger;
|
|
int szGaia_f_two_hand_spear;
|
|
int szGaia_f_one_hand_axe; ///< VARCHAR(64) , -- 89
|
|
int szGaia_f_two_hand_axe;
|
|
int szGaia_f_double_axe; ///< VARCHAR(64) , -- 91
|
|
int szGaia_f_one_hand_staff;
|
|
int szGaia_f_two_hand_staff;
|
|
int szGaia_f_one_hand_mace;
|
|
int szGaia_f_two_hand_mace;
|
|
int szGaia_f_bow;
|
|
int szGaia_f_cross_bow;
|
|
|
|
// From ZONE source; dual crossbows
|
|
int szAsura_m_double_crossbow;
|
|
int szAsura_f_double_crossbow;
|
|
};
|
|
|
|
|
|
struct _MOTION_SET_MONSTER
|
|
{
|
|
void clear()
|
|
{
|
|
memset(this, 0, sizeof (*this));
|
|
}
|
|
|
|
_MOTION_SET_MONSTER()
|
|
{
|
|
clear();
|
|
}
|
|
|
|
// sonador #2.1.15 변신시 모션 연결 적용
|
|
int GetAniId( int nAniIndex )
|
|
{
|
|
// 2.1.15 변신시 모션 연결 적용
|
|
switch( nAniIndex )
|
|
{
|
|
case ANI_DEFAULT01 : return szDef;
|
|
case ANI_DEFAULT02 : return szBattle;
|
|
case ANI_IDLE : return szIdle;
|
|
case ANI_WALK : return szWalk;
|
|
case ANI_RUN : return szRun;
|
|
case ANI_DAMAGE01 : return szBe_attack;
|
|
case ANI_DAMAGE02 : return szBe_attack2;
|
|
|
|
case ANI_DEAD01 : return szDead;
|
|
case ANI_DEAD02 : return szflying_dead;
|
|
case ANI_SITDOWN : return szDead;
|
|
case ANI_SIT : return szDead;
|
|
case ANI_SITUP : return szDef;
|
|
case ANI_PICKUP01 : return szTake;
|
|
|
|
case ANI_ATTACK01 : return szAttack_1;
|
|
case ANI_ATTACK02 : return szAttack_2;
|
|
case ANI_ATTACK03 : return szAttack_3;
|
|
|
|
case ANI_CRITICAL_ATTACK01: return szAttack_1;
|
|
case ANI_CRITICAL_ATTACK02: return szAttack_2;
|
|
case ANI_CRITICAL_ATTACK03: return szAttack_3;
|
|
|
|
case ANI_DOUBLE_ATTACK01: return szAttack_1;
|
|
case ANI_DOUBLE_ATTACK02: return szAttack_2;
|
|
case ANI_DOUBLE_ATTACK03: return szAttack_3;
|
|
|
|
case ANI_BOW_ATTACK01_A : return szDraw_bow;
|
|
case ANI_BOW_ATTACK01_B : return szTarget_bow;
|
|
case ANI_BOW_ATTACK01_C : return szFire_bow;
|
|
|
|
case ANI_CAST00_A:
|
|
case ANI_CAST01_A:
|
|
case ANI_CAST02_A:
|
|
case ANI_CAST03_A:
|
|
case ANI_CAST04_A:
|
|
case ANI_CAST05_A:
|
|
case ANI_CAST06_A:
|
|
{
|
|
return szCasting_1;
|
|
}
|
|
|
|
case ANI_CAST00_B:
|
|
case ANI_CAST01_B:
|
|
case ANI_CAST02_B:
|
|
case ANI_CAST03_B:
|
|
case ANI_CAST04_B:
|
|
case ANI_CAST05_B:
|
|
case ANI_CAST06_B:
|
|
{
|
|
return szCasting_2;
|
|
}
|
|
|
|
|
|
case ANI_FIRE_MAGIC01:
|
|
case ANI_FIRE_MAGIC02:
|
|
case ANI_FIRE_MAGIC03:
|
|
case ANI_FIRE_MAGIC04:
|
|
case ANI_FIRE_MAGIC05:
|
|
{
|
|
return szCasting_3;
|
|
}
|
|
|
|
case ANI_SKILL2501 : return szCasting_3;
|
|
case ANI_SKILL2502 : return szCasting_2;
|
|
case ANI_SKILL3602 : return szCasting_3;
|
|
case ANI_SKILL0000 : return szCasting_3;
|
|
|
|
case ANI_SKILL2001_1 : return szMelee_1;
|
|
case ANI_SKILL2001_2 : return szMelee_2;
|
|
case ANI_SKILL2001_3 : return szMelee_3;
|
|
|
|
case ANI_SKILL2002_1 : return szMelee_1;
|
|
case ANI_SKILL2002_2 : return szMelee_2;
|
|
case ANI_SKILL2002_3 : return szMelee_3;
|
|
|
|
case ANI_SKILL2012 : return szMelee_3;
|
|
case ANI_SKILL2006 : return szMelee_3;
|
|
|
|
case ANI_SKILL2007_1 : return szMelee_1;
|
|
case ANI_SKILL2007_2 : return szMelee_2;
|
|
case ANI_SKILL2007_3 : return szMelee_3;
|
|
|
|
case ANI_SKILL2018_0 : return szMelee_2;
|
|
case ANI_SKILL2018_1 : return szMelee_3;
|
|
case ANI_SKILL2018_2 : return szMelee_3;
|
|
case ANI_SKILL2018_3 : return szMelee_3;
|
|
|
|
case ANI_SKILL2022 :
|
|
case ANI_SKILL2031 : return szMelee_3;
|
|
|
|
case ANI_SKILL2033_A : return szMelee_1;
|
|
case ANI_SKILL2033_B : return szMelee_2;
|
|
case ANI_SKILL2033_C : return szMelee_3;
|
|
|
|
case ANI_SKILL2037_A : return szMelee_1;
|
|
case ANI_SKILL2037_B : return szMelee_2;
|
|
case ANI_SKILL2037_C : return szMelee_3;
|
|
|
|
case ANI_SKILL3006 :
|
|
case ANI_SKILL3001 : return szMelee_3;
|
|
|
|
case ANI_SKILL3004_A : return szMelee_1;
|
|
case ANI_SKILL3004_B : return szMelee_2;
|
|
case ANI_SKILL3004_C : return szMelee_3;
|
|
|
|
case ANI_SKILL3005_A : return szMelee_1;
|
|
case ANI_SKILL3005_B : return szMelee_2;
|
|
case ANI_SKILL3005_C : return szMelee_3;
|
|
|
|
case ANI_SKILL3009_A : return szMelee_1;
|
|
case ANI_SKILL3009_B : return szMelee_2;
|
|
case ANI_SKILL3009_C : return szMelee_3;
|
|
|
|
case ANI_SKILL3002 :
|
|
case ANI_SKILL3003 :
|
|
case ANI_SKILL3007 :
|
|
case ANI_SKILL3008 : return szMelee_3;
|
|
|
|
case ANI_M_DEAD :
|
|
case ANI_M_FALL : return szDead;
|
|
case ANI_M_WALK :
|
|
case ANI_M_WALK_QILIN :
|
|
case ANI_M_WALK_WHITE :
|
|
case ANI_M_WALK_UNICORN :
|
|
case ANI_M_RUN_LOW :
|
|
case ANI_M_RUN_HIGH :
|
|
case ANI_M_RUN_QILIN :
|
|
case ANI_M_RUN_UNICORN :
|
|
case ANI_M_RUN_WHITE :
|
|
/// 2011.02.08 - prodongi
|
|
case ANI_M_DEFAULT01_BEAKHO :
|
|
case ANI_M_WALK_BEAKHO :
|
|
case ANI_M_RUN_BEAKHO :
|
|
case ANI_M_DEFAULT01_LOW :
|
|
case ANI_M_DEFAULT01_HIGH :
|
|
case ANI_M_DEFAULT01_QILIN :
|
|
case ANI_M_DEFAULT01_UNICORN :
|
|
case ANI_M_DEFAULT01_WHITE : return szDef;
|
|
case ANI_M_DAMAGE01 : return szBe_attack;
|
|
case ANI_M_DAMAGE02 : return szBe_attack2;
|
|
|
|
case ANI_M_MOUNT_LOW :
|
|
case ANI_M_MOUNT_HIGH :
|
|
case ANI_M_MOUNT01_UNICORN:
|
|
case ANI_M_MOUNT01_WHITE: return szMount;
|
|
case ANI_M_UNMOUNT_LOW :
|
|
case ANI_M_UNMOUNT_HIGH :
|
|
case ANI_M_UNMOUNT01_UNICORN:
|
|
case ANI_M_UNMOUNT01_WHITE: return szUnmount;
|
|
|
|
case ANI_ANGRY :
|
|
case ANI_APOLOGIZE :
|
|
case ANI_BORING :
|
|
case ANI_BOW :
|
|
case ANI_CHEER :
|
|
case ANI_CLAP :
|
|
case ANI_DANCE :
|
|
case ANI_HAPPY :
|
|
case ANI_HI :
|
|
case ANI_NO :
|
|
case ANI_POUT :
|
|
case ANI_PROVOKE :
|
|
case ANI_SORROW :
|
|
case ANI_PRAY :
|
|
case ANI_YES : return szIdle;
|
|
|
|
case ANI_HANDLE01 :
|
|
case ANI_HANDLE02 :
|
|
case ANI_HANDLE03 :
|
|
case ANI_MINE01 :
|
|
case ANI_MINE02 :
|
|
case ANI_MINE03 :
|
|
case ANI_COLLECT01 :
|
|
case ANI_COLLECT02 :
|
|
case ANI_COLLECT03 : return szAttack_1;
|
|
|
|
}
|
|
|
|
_oprint( "NotFoundAniName %d\n", nAniIndex );
|
|
assert( false && "NotFoundAniName" );
|
|
return 0;
|
|
}
|
|
|
|
#define MAX_LEN 256
|
|
|
|
int character_id;
|
|
|
|
int szDef;
|
|
int szBattle;
|
|
int szIdle;
|
|
int szWalk;
|
|
int szRun;
|
|
int szBe_attack;
|
|
int szBe_attack2;
|
|
int szDead;
|
|
int szflying_dead;
|
|
int szTake;
|
|
|
|
int szAttack_1;
|
|
int szAttack_2;
|
|
int szAttack_3;
|
|
|
|
int szDraw_bow;
|
|
int szTarget_bow;
|
|
int szFire_bow;
|
|
|
|
int szCasting_1;
|
|
int szCasting_2;
|
|
int szCasting_3;
|
|
|
|
int szMelee_1;
|
|
int szMelee_2;
|
|
int szMelee_3;
|
|
|
|
int szMount;
|
|
int szUnmount;
|
|
};
|
|
#ifdef _RDBGENTEST
|
|
#pragma pack(push,1)
|
|
#endif
|
|
struct _CHARACTER_MOTION
|
|
{
|
|
_CHARACTER_MOTION()
|
|
{
|
|
nMotion_ID = 0;
|
|
nRace_ID = 0;
|
|
nSex = 0;
|
|
memset( szFile_Name, 0, sizeof( szFile_Name ) );
|
|
nFrame_Length = 0;
|
|
nPlay_Speed = 0;
|
|
|
|
graphic_effect_file_ID = 0;
|
|
nGraphic_effect_speed_type = 0;
|
|
nGraphic_effect_position = 0;
|
|
|
|
sound_file_ID = 0;
|
|
nSound_volumn = 0;
|
|
nSound_play_probability = 0;
|
|
nSound_timing = 0;
|
|
|
|
sound_reverb_apply = 0;
|
|
sound_filter_apply = 0;
|
|
sound_stereo_apply = 0;
|
|
|
|
|
|
fx_id = 0;
|
|
fx_timing = 0;
|
|
fx_position = 0;
|
|
fx_play_speed = 0;
|
|
|
|
nEvent01_id = 0;
|
|
nEvent01_timing = 0;
|
|
|
|
nEvent02_id = 0;
|
|
nEvent02_timing = 0;
|
|
|
|
nEvent03_id = 0;
|
|
nEvent03_timing = 0;
|
|
|
|
nEvent04_id = 0;
|
|
nEvent04_timing = 0;
|
|
|
|
nEvent05_id = 0;
|
|
nEvent05_timing = 0;
|
|
}
|
|
|
|
int nMotion_ID; ///< 개별모션 ID
|
|
int nRace_ID; ///< 종족
|
|
int nSex; ///< 성별
|
|
char szFile_Name[256]; ///< 바이패드 화일명
|
|
int nFrame_Length; ///< 프레임 길이
|
|
int nPlay_Speed; ///< 재생속도
|
|
|
|
int graphic_effect_file_ID; ///< INT NOT NULL , -- 07
|
|
int nGraphic_effect_speed_type; ///< 이펙트 속도 타입
|
|
int nGraphic_effect_position; ///< 이펙트 위치
|
|
char graphic_effect_follow; ///< TINYINT NOT NULL , -- 10
|
|
char graphic_effect_disappear; ///< TINYINT NOT NULL , -- 11
|
|
|
|
int sound_file_ID; ///< INT NOT NULL , -- 12
|
|
int nSound_volumn; ///< 볼륨(%) 13
|
|
int nSound_play_probability; ///< "재생 확률" 14
|
|
int nSound_timing; ///< 타이밍(프레임) 15
|
|
char sound_reverb_apply; ///< TINYINT NOT NULL , -- 16
|
|
char sound_filter_apply; ///< TINYINT NOT NULL , -- 17
|
|
char sound_stereo_apply; ///< TINYINT NOT NULL , -- 18
|
|
|
|
int fx_id; ///< INT NOT NULL , -- 19
|
|
int fx_timing; ///< INT NOT NULL , -- 20
|
|
int fx_position; ///< INT NOT NULL , -- 21
|
|
int fx_play_speed; ///< INT NOT NULL , -- 22
|
|
|
|
int nEvent01_id; ///< 이벤트 ID
|
|
int nEvent01_timing; ///< 타이밍(프레임)
|
|
|
|
int nEvent02_id; ///< 이벤트 ID
|
|
int nEvent02_timing; ///< 타이밍(프레임)
|
|
|
|
int nEvent03_id; ///< 이벤트 ID
|
|
int nEvent03_timing; ///< 타이밍(프레임)
|
|
|
|
int nEvent04_id; ///< 이벤트 ID
|
|
int nEvent04_timing; ///< 타이밍(프레임)
|
|
|
|
int nEvent05_id; ///< 이벤트 ID
|
|
int nEvent05_timing; ///< 타이밍(프레임)
|
|
|
|
int nEvent06_id;
|
|
int nEvent06_timing;
|
|
|
|
int nEvent07_id;
|
|
int nEvent07_timing;
|
|
|
|
int nEvent08_id;
|
|
int nEvent08_timing;
|
|
|
|
int nEvent09_id;
|
|
int nEvent09_timing;
|
|
|
|
int nEvent10_id;
|
|
int nEvent10_timing;
|
|
};
|
|
#ifdef _RDBGENTEST
|
|
#pragma pack(pop)
|
|
#endif
|
|
struct _MOTION_EVENT_HANDER
|
|
{
|
|
_MOTION_EVENT_HANDER()
|
|
{
|
|
nID = 0;
|
|
memset(szFx_id_Text, 0, sizeof( szFx_id_Text ) );
|
|
memset(szScript, 0, sizeof( szScript ) );
|
|
}
|
|
|
|
int nID; ///< 핸들 ID
|
|
char szFx_id_Text[256]; ///< 설명?
|
|
char szScript[512]; ///< 스크립트
|
|
};
|
|
#ifdef _RDBGENTEST
|
|
#pragma pack(push,1)
|
|
#endif
|
|
struct _MOTION_FX_SET
|
|
{
|
|
_MOTION_FX_SET()
|
|
{
|
|
nID = 0;
|
|
nFx_Type = 0;
|
|
nAdd_Time = 0;
|
|
nFollowing = 0;
|
|
|
|
graphic_effect_start_file_ID = 0;
|
|
graphic_effect_middle_file_ID = 0;
|
|
graphic_effect_end_file_ID = 0;
|
|
nGraphic_effect_direction = 0;
|
|
|
|
sound_start_file_ID = 0;
|
|
sound_middle_file_ID = 0;
|
|
sound_end_file_ID = 0;
|
|
nSound_play_probability = 0;
|
|
nSound_volumn = 0;
|
|
|
|
IsEffect[0] = IsEffect[1] = IsEffect[2] = false;
|
|
IsSound[0] = IsSound[1] = IsSound[2] = false;
|
|
|
|
sound_reverb_apply = 0;
|
|
sound_filter_apply = 0;
|
|
sound_stereo_apply = 0;
|
|
|
|
sound_option[0] = false;
|
|
sound_option[1] = false;
|
|
sound_option[2] = false;
|
|
}
|
|
|
|
void SetInfo()
|
|
{
|
|
sound_option[0] = sound_reverb_apply == 0 ? false : true;
|
|
sound_option[1] = sound_filter_apply == 0 ? false : true;
|
|
sound_option[2] = sound_stereo_apply == 0 ? false : true;
|
|
}
|
|
|
|
int nID; ///< INT NOT NULL , -- 01
|
|
int nFx_Type; ///< INT NOT NULL , -- 02
|
|
int nAdd_Time; ///< INT NOT NULL , -- 03
|
|
int nFollowing; ///< INT NOT NULL , -- 04
|
|
|
|
int graphic_effect_start_file_ID; ///< INT NOT NULL , -- 05
|
|
int graphic_effect_middle_file_ID; ///< INT NOT NULL , -- 06
|
|
int graphic_effect_end_file_ID; ///< INT NOT NULL , -- 07
|
|
int nGraphic_effect_direction; ///< VARCHAR(256) NOT NULL , -- 08
|
|
bool IsEffect[3];
|
|
|
|
int sound_start_file_ID; ///< INT NOT NULL , -- 09
|
|
int sound_middle_file_ID; ///< INT NOT NULL , -- 10
|
|
int sound_end_file_ID; ///< INT NOT NULL , -- 11
|
|
int nSound_play_probability; ///< INT NOT NULL , -- 12
|
|
int nSound_volumn; ///< INT NOT NULL , -- 13
|
|
bool IsSound[3];
|
|
|
|
char sound_reverb_apply; ///< TINYINT NOT NULL -- 14
|
|
char sound_filter_apply; ///< TINYINT NOT NULL -- 15
|
|
char sound_stereo_apply; ///< TINYINT NOT NULL -- 16
|
|
|
|
bool sound_option[3]; ///< 클라이언트만 쓴다
|
|
};
|
|
#ifdef _RDBGENTEST
|
|
#pragma pack(pop)
|
|
#endif |