Code Monkey home page Code Monkey logo

server's People

Contributors

rafakave avatar tiancaiamao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

server's Issues

change the data files name and load MonsterInfo to use English

if ( pInfo->getMonsterClass() == 0 )
{
slayer_filename = g_pConfig->getProperty("HomePath") + "/data/" + pInfo->getHName() + ".slayer.bin";
vampire_filename = g_pConfig->getProperty("HomePath") + "/data/" + pInfo->getHName() + ".vampire.bin";
ousters_filename = g_pConfig->getProperty("HomePath") + "/data/" + pInfo->getHName() + ".ousters.bin";
}
else
{
char buffer[10];
sprintf(buffer, "Class%d", pInfo->getMonsterClass());
slayer_filename = g_pConfig->getProperty("HomePath") + "/data/" + buffer + ".slayer.bin";
vampire_filename = g_pConfig->getProperty("HomePath") + "/data/" + buffer + ".vampire.bin";
ousters_filename = g_pConfig->getProperty("HomePath") + "/data/" + buffer + ".ousters.bin";
}
TreasureList* pSlayerTreasureList = m_SlayerTreasureLists.getTreasure( slayer_filename );
TreasureList* pVampireTreasureList = m_VampireTreasureLists.getTreasure( vampire_filename );
TreasureList* pOustersTreasureList = m_OustersTreasureLists.getTreasure( ousters_filename );

The file name looks like:

弊饭捞飘矾乔攫胶拿.ousters.bin  龙靛饭.slayer.txt               摹橇肺靛促农聪胶.ousters.bin  摹橇箕刚坷橇.vampire.bin       摹橇墨坷胶唱捞飘.slayer.bin   涅胶飘肺靛墨坷胶.ousters.bin    adam_e.smp               castalo_ne.ssi        Class14.ousters.bin  devt.ssi                 gate_of_alter.smp    guild_knight_3f.ssi      limbo_lair_sw.smp       pentanus_dungeon2f.smp  SimpleGQuest.xml        TravelWay.xml
弊饭捞飘矾乔攫胶拿.slayer.bin   龙靛饭.vampire.bin              摹橇肺靛促农聪胶.slayer.bin   摹橇贾廉2.ousters.bin          摹橇墨坷胶唱捞飘.vampire.bin  涅胶飘肺靛墨坷胶.slayer.bin     adam_e.ssi               castellum.smp         Class14.slayer.bin   drobeta_dungeon_s1f.smp  gate_of_alter.ssi    guild_knight_4f.smp      limbo_lair_sw.ssi       pentanus_dungeon2f.ssi  SimpleGQuest.xml.bak    tunnel_ghorgova.smp
弊饭捞飘矾乔攫胶拿.vampire.bin  摹橇榜饭赣.ousters.bin          摹橇肺靛促农聪胶.vampire.bin  摹橇贾廉2.slayer.bin           摹橇母凭.ousters.bin          涅胶飘肺靛墨坷胶.vampire.bin    adam_new_c_n.smp         castellum.ssi         Class14.vampire.bin  drobeta_dungeon_s1f.ssi  gdr_illusion_01.smp  guild_knight_4f.ssi      losttaiyan_b1f.smp      perona_ne.smp           SimpleGQuest.xml.bak2   tunnel_ghorgova.ssi
促农海府飘府歹.ousters.bin      摹橇榜饭赣.slayer.bin           摹橇肺靛墨坷胶.ousters.bin    摹橇贾廉2.vampire.bin          摹橇母凭.slayer.bin           涅胶飘葛单扼胶.ousters.bin      adam_new_c_n.ssi         castle_hexserius.smp  Class1.ousters.bin   drobeta_dungeon_v1f.smp  gdr_illusion_01.ssi  guild_knight_b1.smp      losttaiyan_b1f.ssi      perona_ne.ssi           slayer_battlezone1.smp  tunnel_peiac.smp
促农海府飘府歹.slayer.bin       摹橇榜饭赣.vampire.bin          摹橇肺靛墨坷胶.slayer.bin     摹橇贾廉.ousters.bin           摹橇母凭.vampire.bin          涅胶飘葛单扼胶.slayer.bin       adam_new_c.smp           castle_hexserius.ssi  Class1.slayer.bin    drobeta_dungeon_v1f.ssi  gdr_illusion_02.smp  guild_knight_b1.ssi      losttaiyan_b2f.smp      perona_nw.smp           slayer_battlezone1.ssi  tunnel_peiac.ssi
促农海府飘府歹.vampire.bin      摹橇戳措.ousters.bin            摹橇肺靛墨坷胶.vampire.bin    摹橇贾廉.slayer.bin            摹橇农覆郊浇肺磐.ousters.bin  涅胶飘葛单扼胶.vampire.bin      adam_new_c.ssi           castle_octavus.smp    Class1.vampire.bin   drobeta_ne.smp           gdr_illusion_02.ssi  hexserius_dungeon1f.smp  losttaiyan_b2f.ssi      perona_nw.ssi           slayer_battlezone2.smp  tutorial_n.smp
肺靛墨坷胶府歹.ousters.bin      摹橇戳措.slayer.bin             摹橇府摹俩.ousters.bin        摹橇贾廉.vampire.bin           摹橇农覆郊浇肺磐.slayer.bin   涅胶飘喉矾靛况废.ousters.bin    adam_new_c_s.smp         castle_octavus.ssi    Class2.ousters.bin   drobeta_ne.ssi           gdr_lair_01.smp      hexserius_dungeon1f.ssi  losttower_1f.smp        perona_se.smp           slayer_battlezone2.ssi  tutorial_n.ssi
肺靛墨坷胶府歹.slayer.bin       摹橇戳措.vampire.bin            摹橇府摹俩.slayer.bin         摹橇溅档快喇.ousters.bin       摹橇农覆郊浇肺磐.vampire.bin  涅胶飘喉矾靛况废.slayer.bin     adam_new_c_s.ssi         castle_pentanus.smp   Class2.slayer.bin    drobeta_nw.smp           gdr_lair_01.ssi      hexserius_dungeon2f.smp  losttower_1f.ssi        perona_se.ssi           slayerpk.smp            tutorial_s.smp
肺靛墨坷胶府歹.vampire.bin      摹橇促农啊叼攫.ousters.bin      摹橇府摹俩.vampire.bin        摹橇溅档快喇.slayer.bin        摹橇虐靛.ousters.bin          涅胶飘喉矾靛况废.vampire.bin    adam_new_e.smp           castle_pentanus.ssi   Class2.vampire.bin   drobeta_nw.ssi           gdr_lair_hard.smp    hexserius_dungeon2f.ssi  losttower_2f.smp        perona_sw.smp           slayerpk.ssi            tutorial_s.ssi
官配府.ousters.bin              摹橇促农啊叼攫.slayer.bin       摹橇府欺.ousters.bin          摹橇溅档快喇.vampire.bin       摹橇虐靛.slayer.bin           涅胶飘困档快令.ousters.bin      adam_new_e.ssi           castle_quartus.smp    Class3.ousters.bin   drobeta_ox.smp           gdr_lair_hard.ssi    icen_dungeon3f.smp       losttower_2f.ssi        perona_sw.ssi           slayers_training.smp    under_pass_1f.smp
官配府.slayer.bin               摹橇促农啊叼攫.vampire.bin      摹橇府欺.slayer.bin           摹橇酒捞攫萍静.ousters.bin     摹橇虐靛.vampire.bin          涅胶飘困档快令.slayer.bin       adam_new_w.smp           castle_quartus.ssi    Class3.slayer.bin    drobeta_ox.ssi           guild_army_1f.smp    icen_dungeon3f.ssi       lusttower_1f.smp        quartus_dungeon1f.smp   slayers_training.ssi    under_pass_1f.ssi
官配府.vampire.bin              摹橇促农海府飘.ousters.bin      摹橇府欺.vampire.bin          摹橇酒捞攫萍静.slayer.bin      摹橇磐醋单靛.ousters.bin      涅胶飘困档快令.vampire.bin      adam_new_w.ssi           castle_rasen_1_1.smp  Class3.vampire.bin   drobeta_se.smp           guild_army_1f.ssi    ik_lab_b1f.smp           lusttower_1f.ssi        quartus_dungeon1f.ssi   survival.smp            under_pass_2f.smp
局浆惯废府歹.ousters.bin        摹橇促农海府飘.slayer.bin       摹橇付款飘农贰弊.ousters.bin  摹橇酒捞攫萍静.vampire.bin     摹橇磐醋单靛.slayer.bin       涅胶飘墨坷胶啊叼攫.ousters.bin  adam_w.smp               castle_rasen_1_1.ssi  Class4.ousters.bin   drobeta_se.ssi           guild_army_2f.smp    ik_lab_b1f.ssi           lusttower_2f.smp        quartus_dungeon2f.smp   survival.ssi            under_pass_2f.ssi
局浆惯废府歹.slayer.bin         摹橇促农海府飘.vampire.bin      摹橇付款飘农贰弊.slayer.bin   摹橇舅沫.ousters.bin           摹橇磐醋单靛.vampire.bin      涅胶飘墨坷胶啊叼攫.slayer.bin   adam_w.ssi               castle_rasen_1_2.smp  Class4.slayer.bin    drobeta_stadium.smp      guild_army_2f.ssi    ik_lab_b2f.smp           lusttower_2f.ssi        quartus_dungeon2f.ssi   team_hdqrs.smp          vampirepk.smp
局浆惯废府歹.vampire.bin        摹橇促农胶农府赣.ousters.bin    摹橇付款飘农贰弊.vampire.bin  摹橇舅沫.slayer.bin            摹橇磐醋家匡.ousters.bin      涅胶飘墨坷胶啊叼攫.vampire.bin  alter_of_blood.smp       castle_rasen_1_2.ssi  Class4.vampire.bin   drobeta_stadium.ssi      guild_army_3f.smp    ik_lab_b2f.ssi           MakeEmpty.sh            rasen_battlezone.smp    team_hdqrs.ssi          vampirepk.ssi
楷函戳措1.ousters.bin           摹橇促农胶农府赣.slayer.bin     摹橇肛赴阁.ousters.bin        摹橇舅沫.vampire.bin           摹橇磐醋家匡.slayer.bin       涅胶飘墨坷胶弊府靛.ousters.bin  alter_of_blood.ssi       castle_rasen_2_2.smp  Class5.ousters.bin   drobeta_sw.smp           guild_army_3f.ssi    ik_lab.smp               maze.smp                rasen_battlezone.ssi    tepes_lair_clon.smp     vampire_village.smp
楷函戳措1.slayer.bin            摹橇促农胶农府赣.vampire.bin    摹橇肛赴阁.slayer.bin         摹橇俊胶飘肺捞歹.ousters.bin   摹橇磐醋家匡.vampire.bin      涅胶飘墨坷胶弊府靛.slayer.bin   asylion_dungeon.smp      castle_rasen_2_2.ssi  Class5.slayer.bin    drobeta_sw.ssi           guild_army_4f.smp    ik_lab.ssi               maze.ssi                rasen_training.smp      tepes_lair_clon.ssi     vampire_village.ssi
楷函戳措1.vampire.bin           摹橇促农庆捞令.ousters.bin      摹橇肛赴阁.vampire.bin        摹橇俊胶飘肺捞歹.slayer.bin    摹橇秋啊叼攫.ousters.bin      涅胶飘墨坷胶弊府靛.vampire.bin  asylion_dungeon.ssi      castle_septimus.smp   Class5.vampire.bin   eslania_dungeon.smp      guild_army_4f.ssi    ik_offic.smp             octavus_dungeon1f.smp   rasen_training.ssi      tepes_lair.smp          vranco_ne.smp
楷函戳措2.ousters.bin           摹橇促农庆捞令.slayer.bin       摹橇葛单扼胶.ousters.bin      摹橇俊胶飘肺捞歹.vampire.bin   摹橇秋啊叼攫.slayer.bin       涅胶飘农覆郊浇肺磐.ousters.bin  bathory_battlezone.smp   castle_septimus.ssi   Class6.ousters.bin   eslania_dungeon.ssi      guild_army_b1.smp    ik_offic.ssi             octavus_dungeon1f.ssi   rasen_yard.smp          tepes_lair.ssi          vranco_ne.ssi
楷函戳措2.slayer.bin            摹橇促农庆捞令.vampire.bin      摹橇葛单扼胶.slayer.bin       摹橇困档快令.ousters.bin       摹橇秋啊叼攫.vampire.bin      涅胶飘农覆郊浇肺磐.slayer.bin   bathory_battlezone.ssi   castle_tertius.smp    Class6.slayer.bin    eslania_ne.smp           guild_army_b1.ssi    kali_cave.smp            octavus_dungeon2f.smp   rasen_yard.ssi          tertius_dungeon1f.smp   vranco_nw.smp
楷函戳措2.vampire.bin           摹橇歹萍胶飘扼捞歹.ousters.bin  摹橇葛单扼胶.vampire.bin      摹橇困档快令.slayer.bin        摹橇秋困磊靛.ousters.bin      涅胶飘农覆郊浇肺磐.vampire.bin  bathory_dungeon_b1f.smp  castle_tertius.ssi    Class6.vampire.bin   eslania_ne.ssi           guild_cleric_1f.smp  kali_cave.ssi            octavus_dungeon2f.ssi   rodin_ne.smp            tertius_dungeon1f.ssi   vranco_nw.ssi
楷函风倒橇1.ousters.bin         摹橇歹萍胶飘扼捞歹.slayer.bin   摹橇孤畔飘.ousters.bin        摹橇困档快令.vampire.bin       摹橇秋困磊靛.slayer.bin       涅胶飘虐靛.ousters.bin          bathory_dungeon_b1f.ssi  clan_hdqrs.smp        Class7.ousters.bin   eslania_NW.smp           guild_cleric_1f.ssi  laom_dungeon3f.smp       ousters_dungeon01.smp   rodin_ne.ssi            tertius_dungeon2f.smp   vranco_se.smp
楷函风倒橇1.slayer.bin          摹橇歹萍胶飘扼捞歹.vampire.bin  摹橇孤畔飘.slayer.bin         摹橇磊捞攫飘坷胶.ousters.bin   摹橇秋困磊靛.vampire.bin      涅胶飘虐靛.slayer.bin           bathory_dungeon_b2f.smp  clan_hdqrs.ssi        Class7.slayer.bin    eslania_NW.ssi           guild_cleric_2f.smp  laom_dungeon3f.ssi       ousters_dungeon01.ssi   rodin_nw.smp            tertius_dungeon2f.ssi   vranco_se.ssi
楷函风倒橇1.vampire.bin         摹橇带匡橇酒农.ousters.bin      摹橇孤畔飘.vampire.bin        摹橇磊捞攫飘坷胶.slayer.bin    摹橇秋巧靛.ousters.bin        涅胶飘虐靛.vampire.bin          bathory_dungeon_b2f.ssi  Class10.ousters.bin   Class7.vampire.bin   eslania_se.smp           guild_cleric_2f.ssi  laom_dungeon4f.smp       ousters_dungeon02.smp   rodin_nw.ssi            timore_ne.smp           vranco_sw.smp
楷函风倒橇2.ousters.bin         摹橇带匡橇酒农.slayer.bin       摹橇亥代扼捞历.ousters.bin    摹橇磊捞攫飘坷胶.vampire.bin   摹橇秋巧靛.slayer.bin         农覆郊浇肺磐府歹.ousters.bin    bathory_dungeon_b3f.smp  Class10.slayer.bin    Class8.ousters.bin   eslania_se.ssi           guild_cleric_3f.smp  laom_dungeon4f.ssi       ousters_dungeon02.ssi   rodin_se.smp            timore_ne.ssi           vranco_sw.ssi
楷函风倒橇2.slayer.bin          摹橇带匡橇酒农.vampire.bin      摹橇亥代扼捞历.slayer.bin     摹橇墨坷胶啊叼攫.ousters.bin   摹橇秋巧靛.vampire.bin        农覆郊浇肺磐府歹.slayer.bin     bathory_dungeon_b3f.ssi  Class10.vampire.bin   Class8.slayer.bin    eslania_sw.smp           guild_cleric_3f.ssi  laom_Dungeon5F.smp       ousters_dungeon03.smp   rodin_se.ssi            timore_nw.smp
楷函风倒橇2.vampire.bin         摹橇单靛官叼2.ousters.bin       摹橇亥代扼捞历.vampire.bin    摹橇墨坷胶啊叼攫.slayer.bin    摹橇龋喉.ousters.bin          农覆郊浇肺磐府歹.vampire.bin    bathory_dungeon_b4f.smp  Class11.ousters.bin   Class8.vampire.bin   eslania_sw.ssi           guild_cleric_4f.smp  laom_Dungeon5F.ssi       ousters_dungeon03.ssi   rodin_sw.smp            timore_nw.ssi
楷函魂鸥1.ousters.bin           摹橇单靛官叼2.slayer.bin        摹橇喉矾靛况废.ousters.bin    摹橇墨坷胶啊叼攫.vampire.bin   摹橇龋喉.slayer.bin           磐醋单靛府歹.ousters.bin        bathory_dungeon_b4f.ssi  Class11.slayer.bin    Class9.ousters.bin   EventCheckPoint.xml      guild_cleric_4f.ssi  limbo_dungeon.smp        ousters_dungeon04.smp   rodin_sw.ssi            timore_se.smp
楷函魂鸥1.slayer.bin            摹橇单靛官叼2.vampire.bin       摹橇喉矾靛况废.slayer.bin     摹橇墨坷胶弊府靛.ousters.bin   摹橇龋喉.vampire.bin          磐醋单靛府歹.slayer.bin         bathory_lair_clon.smp    Class11.vampire.bin   Class9.slayer.bin    EventGQuestB.xml         guild_cleric_b1.smp  limbo_dungeon.ssi        ousters_dungeon04.ssi   septimus_dungeon1f.smp  timore_se.ssi
楷函魂鸥1.vampire.bin           摹橇单靛官叼.ousters.bin        摹橇喉矾靛况废.vampire.bin    摹橇墨坷胶弊府靛.slayer.bin    涅胶飘促农啊叼攫.ousters.bin  磐醋单靛府歹.vampire.bin        bathory_lair_clon.ssi    Class12.ousters.bin   Class9.vampire.bin   EventGQuest.xml          guild_cleric_b1.ssi  limbo_lair_ne.smp        ousters_village.smp     septimus_dungeon1f.ssi  timore_sw.smp
楷函魂鸥2.ousters.bin           摹橇单靛官叼.slayer.bin         摹橇候曝.ousters.bin          摹橇墨坷胶弊府靛.vampire.bin   涅胶飘促农啊叼攫.slayer.bin   抛其令.ousters.bin              bathory_lair.smp         Class12.slayer.bin    copyChiefBin         EventGQuest.xml.0119     guild_knight_1f.smp  limbo_lair_ne.ssi        ousters_village.ssi     septimus_dungeon2f.smp  timore_sw.ssi
楷函魂鸥2.slayer.bin            摹橇单靛官叼.vampire.bin        摹橇候曝.slayer.bin           摹橇墨坷胶唱捞飘2.ousters.bin  涅胶飘促农啊叼攫.vampire.bin  抛其令.slayer.bin               bathory_lair.ssi         Class12.vampire.bin   copyQuestBin         EventGQuest.xml.bak      guild_knight_1f.ssi  limbo_lair_nw.smp        path_to_fears.smp       septimus_dungeon2f.ssi  trapzone01.smp
楷函魂鸥2.vampire.bin           摹橇饭靛酒捞.ousters.bin        摹橇候曝.vampire.bin          摹橇墨坷胶唱捞飘2.slayer.bin   涅胶飘带匡橇酒农.ousters.bin  抛其令.vampire.bin              caligo_dungeon.smp       Class13.ousters.bin   CSAuth.idx           EventGQuest.xml.test     guild_knight_2f.smp  limbo_lair_nw.ssi        path_to_fears.ssi       shrinename              trapzone01.ssi
龙靛饭.ousters.bin              摹橇饭靛酒捞.slayer.bin         摹橇箕刚坷橇.ousters.bin      摹橇墨坷胶唱捞飘2.vampire.bin  涅胶飘带匡橇酒农.slayer.bin   adam_c.smp                      caligo_dungeon.ssi       Class13.slayer.bin    CSAuth.tab           freepk.smp               guild_knight_2f.ssi  limbo_lair_se.smp        pentanus_dungeon1f.smp  siege_warfare.smp       trapzone02.smp
龙靛饭.slayer.bin               摹橇饭靛酒捞.vampire.bin        摹橇箕刚坷橇.slayer.bin       摹橇墨坷胶唱捞飘.ousters.bin   涅胶飘带匡橇酒农.vampire.bin  adam_c.ssi                      castalo_ne.smp           Class13.vampire.bin   devt.smp             freepk.ssi               guild_knight_3f.smp  limbo_lair_se.ssi        pentanus_dungeon1f.ssi  siege_warfare.ssi       trapzone02.ssi

And here is the MonsterInfo table:

mysql> select MType , SType , HName  , EName  from MonsterInfo limit 100;
+-------+-------+-----------------------+---------------+
| MType | SType | HName                 | EName         |
+-------+-------+-----------------------+---------------+
|     4 |     5 | 单靛官叼              | Dead Body     |
|     5 |     8 | 磐醋单靛              | Turning Dead  |
|     6 |     6 | 虐靛                  | Kid           |
|     7 |     7 | 磐醋家匡              | Turning Soul  |
|     8 |     9 | 母凭                  | Captain       |
|     9 |     4 | 贾廉                  | Soldier       |
|    17 |    16 | 墨捞历                | Kaiser        |
|    28 |    27 | 喉矾靛况废            | Blood Warlock |
|    29 |     5 | 单靛官叼              | Dead Body     |
|    30 |     5 | 单靛官叼              | Dead Body     |
|    31 |     5 | 单靛官叼              | Dead Body     |
|    32 |     5 | 单靛官叼              | Dead Body     |
|    33 |     5 | 单靛官叼              | Dead Body     |
|    34 |     5 | 单靛官叼              | Dead Body     |
|    35 |     5 | 单靛官叼              | Dead Body     |
|    36 |     5 | 单靛官叼              | Dead Body     |
|    37 |     5 | 单靛官叼              | Dead Body     |
|    38 |     8 | 磐醋单靛              | Turning Dead  |
|    39 |     8 | 磐醋单靛              | Turning Dead  |
|    40 |     8 | 磐醋单靛              | Turning Dead  |
|    41 |     8 | 磐醋单靛              | Turning Dead  |
|    42 |     8 | 磐醋单靛              | Turning Dead  |
|    43 |     8 | 磐醋单靛              | Turning Dead  |
|    44 |     8 | 磐醋单靛              | Turning Dead  |
|    45 |     8 | 磐醋单靛              | Turning Dead  |
|    46 |     8 | 磐醋单靛              | Turning Dead  |
|    47 |     6 | 虐靛                  | Kid           |
|    48 |     6 | 虐靛                  | Kid           |
|    49 |     6 | 虐靛                  | Kid           |
|    50 |     6 | 虐靛                  | Kid           |
|    51 |     6 | 虐靛                  | Kid           |
|    52 |     6 | 虐靛                  | Kid           |
|    53 |     6 | 虐靛                  | Kid           |
|    54 |     6 | 虐靛                  | Kid           |
|    55 |     6 | 虐靛                  | Kid           |
|    56 |     7 | 磐醋家匡              | Turning Soul  |
|    57 |     7 | 磐醋家匡              | Turning Soul  |
|    58 |     7 | 磐醋家匡              | Turning Soul  |
|    59 |     7 | 磐醋家匡              | Turning Soul  |
|    60 |     7 | 磐醋家匡              | Turning Soul  |
|    61 |     7 | 磐醋家匡              | Turning Soul  |
|    62 |     7 | 磐醋家匡              | Turning Soul  |
|    63 |     7 | 磐醋家匡              | Turning Soul  |
|    64 |     7 | 磐醋家匡              | Turning Soul  |
|    65 |     9 | 母凭                  | Captain       |
|    66 |     9 | 母凭                  | Captain       |
|    67 |     9 | 母凭                  | Captain       |
|    68 |     9 | 母凭                  | Captain       |
|    69 |     9 | 母凭                  | Captain       |
|    70 |     9 | 母凭                  | Captain       |
|    71 |     9 | 母凭                  | Captain       |
|    72 |     9 | 母凭                  | Captain       |
|    73 |     9 | 母凭                  | Captain       |
|    74 |     4 | 贾廉                  | Soldier       |
|    75 |     4 | 贾廉                  | Soldier       |
|    76 |     4 | 贾廉                  | Soldier       |
|    77 |     4 | 贾廉                  | Soldier       |
|    78 |     4 | 贾廉                  | Soldier       |
|    79 |     4 | 贾廉                  | Soldier       |
|    80 |     4 | 贾廉                  | Soldier       |
|    81 |     4 | 贾廉                  | Soldier       |
|    82 |     4 | 贾廉                  | Soldier       |
|    83 |    27 | 喉矾靛况废            | Blood Warlock |
|    84 |    27 | 喉矾靛况废            | Blood Warlock |
|    85 |    27 | 喉矾靛况废            | Blood Warlock |
|    86 |    27 | 喉矾靛况废            | Blood Warlock |
|    87 |    27 | 喉矾靛况废            | Blood Warlock |
|    88 |    27 | 喉矾靛况废            | Blood Warlock |
|    89 |    27 | 喉矾靛况废            | Blood Warlock |
|    90 |    27 | 喉矾靛况废            | Blood Warlock |
|    91 |    27 | 喉矾靛况废            | Blood Warlock |
|    92 |    37 | 宏府妮扼墨胶          | Vricolacas    |
|   104 |    40 | 榜饭赣                | Golemer       |
|   105 |    41 | 歹萍胶飘扼捞歹        | Dirty Strider |
|   106 |    42 | 舅沫                  | Alcan         |
|   107 |    43 | 饭靛酒捞              | Red Eye       |
|   111 |    40 | 榜饭赣                | Golemer       |
|   112 |    40 | 榜饭赣                | Golemer       |
|   113 |    40 | 榜饭赣                | Golemer       |
|   114 |    40 | 榜饭赣                | Golemer       |
|   115 |    40 | 榜饭赣                | Golemer       |
|   116 |    40 | 榜饭赣                | Golemer       |
|   117 |    40 | 榜饭赣                | Golemer       |
|   118 |    40 | 榜饭赣                | Golemer       |
|   119 |    40 | 榜饭赣                | Golemer       |
|   120 |    41 | 歹萍胶飘扼捞歹        | Dirty Strider |
|   121 |    41 | 歹萍胶飘扼捞歹        | Dirty Strider |
|   122 |    41 | 歹萍胶飘扼捞歹        | Dirty Strider |
|   123 |    41 | 歹萍胶飘扼捞歹        | Dirty Strider |
|   124 |    41 | 歹萍胶飘扼捞歹        | Dirty Strider |
|   125 |    41 | 歹萍胶飘扼捞歹        | Dirty Strider |
|   126 |    41 | 歹萍胶飘扼捞歹        | Dirty Strider |
|   127 |    41 | 歹萍胶飘扼捞歹        | Dirty Strider |
|   128 |    41 | 歹萍胶飘扼捞歹        | Dirty Strider |
|   129 |    42 | 舅沫                  | Alcan         |
|   130 |    42 | 舅沫                  | Alcan         |
|   131 |    42 | 舅沫                  | Alcan         |
|   132 |    42 | 舅沫                  | Alcan         |
|   133 |    42 | 舅沫                  | Alcan         |
|   134 |    42 | 舅沫                  | Alcan         |
+-------+-------+-----------------------+---------------+
100 rows in set (0.00 sec)

It's better to use English filenames ...

This is the best solution for #14

[BUG] Summoner Pet's.

Hi @tiancaiamao , I found that when using Hourglass, transforming with the sylph from ousters, or any consumable item in the inventory, megaphone, summon pet (wolfdog) nothing happened, it locked the storage, and did not return any error in the logs, so I applied that fix you made in the CGSkillToInventory.cpp and .h files to fix the transformation of werwolf, bat and wolf, the same correction in the CGUseItemFromInventory.cpp and .h files, and the ouster's Hourglass, megaphone and sylph worked, however the pets, I summon them, apparently you increase my stat if they have attributes, they gain experience with the summoned time, but it doesn't show the look, in this case the summoned creature, and it takes items from the monsters. I believe that in the case of the pet, there is another file to be corrected, can you help me? your eyes are more trained than mine. Follow in the return image on the server:

image

The player role can't move if they login to server1

From here:

这个问题已经问了3天了,没人理我!新建的人物进游戏后,就卡在地图里!不管是鬼还是人还是魔灵都一样,动不了,身上的装备也不能丢,服务端给的2个账号里的人物可以走动,装备在装备栏里的东西都是红色的!!!不能打怪也用不了技能!

新建账号 要在player里 把账号 CurrentServerGroupID 改成1 ---(卡图就是因为CurrentServerGroupID这个是0) 111111和222222 里角色可以删除 在人slayer 鬼vampire 魔ousters表里 里面删除后从建角色即可gm权限根据种族在种族表里改把人slayer 鬼vampire 魔ousters三个表里的 competence 改成0

It says change the CurrentServerGroupID of the player table rows to 1 if it's 0 ...

This might be the problem, I'm not sure ... I need to figure it out.

@Chrius @xDezossAx

Creating Account

INSERT INTO Player (PlayerID,Password,Access) VALUE ('username',PASSWORD('password'), 'ALLOW')

1406 - Data too long for column 'Password' at row 1
Time: 0.054s
ok so we have problem or i have problem
the new hash code is to logn so we need to change table PLAYER

image
and set Lenght from 15 to like 50 cuz the new hash is 41 lenght long

then try again create account with query
image

succes
image

but the problem is after trying log in into game Error
image

the problem must be in the new hash
any help ? how i can figure it out ???
when i try to use
query with INSERT` INTO Player (PlayerID,Password,Access) VALUE ('username',OLD_PASSWORD('password'), 'ALLOW')
function dont exist

any idea? how to fix ?

Server End problem

While server is running like 12h and i come back from work ill try to log in and i get DC today i get DBerror.log

image

any idea why is server shuting down ???

gdr lair server crash

End state GDRLairIcepole
Start state GDRLairScene1
���巹 ���� 1�� ��
Gilles de Rais�� HP : 40000
Receive:CGMove(X:81,Y:91,Dir:LEFTUP)
Send:284 GCMoveOK(X:80,Y:90,Dir:LEFTUP)
Receive:CGMove(X:80,Y:90,Dir:LEFT)
Send:284 GCMoveOK(X:79,Y:90,Dir:LEFT)
Receive:CGMove(X:79,Y:90,Dir:DOWN)
Send:284 GCMoveOK(X:79,Y:91,Dir:DOWN)
Receive:CGMove(X:79,Y:91,Dir:RIGHTDOWN)
Send:284 GCMoveOK(X:80,Y:92,Dir:RIGHTDOWN)
���巹�� ���մϴ� : ¹Ö²»µÃÍâÃæÕâôàÐÔÓÄØ...ÄãÃÇÊǾ­¹ýÄÇЩ¿ÉŵÄÏÝÚå²ÅÀ´µ½ÕâÀïµÄÂð£¿
Send:246 GCGlobalChat(Color:16777215,Message:���巹 ¹Ö²»µÃÍâÃæÕâôàÐÔÓÄØ...ÄãÃÇÊǾ­¹ýÄÇЩ¿ÉŵÄÏÝÚå²ÅÀ´µ½ÕâÀïµÄÂð£¿,Race:1)
Receive:CGSay(Color:0, Message:*bug_report too large PacketSize ID)246 136/134)
���巹�� ���մϴ� : ÇëÄãÃDz»ÒªÎó»á£¬ÕâÀïËäÈ»ÊÇÎҵݲÉí´¦£¬²»¹ýÎÒÒ²²»Çå³þÄÇЩÏÝÚåµÄÓÉÀ´¡£

UNHANDLED EXCEPTION OCCURED

New Skills (equivalent to lvl 161 skills in v6 servers)

There are some bugs related to the new skills (386~392), but they work to a certain degree.

I'll post here videos of the skills and a pull request soon.

ENCHANTER

TTDK2.2021-09-14.20-46-27.mp4

HEALER

TTDK2.2021-09-14.21-00-21_Trim.mp4

BLADER

TTDK2.2021-09-14.21-05-02_Trim.mp4

GUNNER

TTDK2.2021-09-14.21-09-38_Trim.mp4

SWORDER

TTDK2.2021-09-14.21-12-11.mp4

VAMPIRES

TTDK2.2021-09-14.21-14-43.mp4
TTDK2.2021-09-14.21-14-43.mp4

OUSTERS

COMBAT

ousterSkill-combat.mp4

FIRE

ousterSkill-fire-meteor.mp4

EARTH

ousterSkill-big-rockfall.mp4

WATER

ousterSkill-rapid-freeze.mp4

Update Bathory and Tepez table MonsterInfo colunn MonsterSummonInfo

Hello @tiancaiamao just remembering for those who are going to translate the monsters HName to EName, to use the english bins, update bathory and tepez summons that point to the monsters name instead of pointing to the number, follow update:

UPDATE MonsterInfo set MonsterSummonInfo='
[(Moderas,8),(Chief Dirty Strider,5),(Chief Estroider,5) / (Widows,8),(Chief Dirty Strider,5),(Chief Estroider,5) / (Widows,7),(Hoble,7),(Chief Estroider,4) / (Widows,7),(Big Fang,7),(Chief Estroider,4) / (Blood Warlock,7),(Big Fang,7),(Chief Estroider,4)]
[(Blood Warlock,6),(Big Fang,6),(Golemer,3) / (Shadow Wing,6),(Big Fang,6),(Golemer,3) / (Shadow Wing,6),(Big Fang,6),(Crimson Slaughter,3) / (Shadow Wing,6),(Reaper,6),(Crimson Slaughter,3) / (Shadow Wing,6),(Reaper,6),(Chaos Knight,3)]
[(Dark Screamer,6),(Hell Wizard,6),(Chaos Knight,3) / (Dark Screamer,6),(Hell Wizard,6),(Chaos Guardian,3) / (Dark Screamer,6),(Hell Wizard,6),(Chaos Guardian,3) / (Dark Screamer,6),(Hell Wizard,6),(Lord Chaos,3) / (Dark Screamer,6),(Hell Wizard,6),(Chaos Knight,3)]
[(Lord Chaos,5),(Dark Haze,5),(Hell Fiend,5) / (Lord Chaos,4),(Dark Haze,6),(Hell Fiend,5) / (Lord Chaos,3),(Dark Haze,6),(Hell Fiend,6) / (Lord Chaos,2),(Dark Haze,6),(Hell Fiend,7) / (Lord Chaos,1),(Dark Haze,7),(Hell Fiend,7)]
[(Lord Darkness,1),(Dark Guardian,7),(Hell Fiend,7) / (Lord Darkness,2),(Dark Guardian,7),(Hell Fiend,6) / (Lord Darkness,3),(Dark Guardian,7),(Hell Fiend,5) / (Lord Darkness,4),(Dark Guardian,7),(Hell Fiend,4) / (Lord Darkness,5),(Dark Guardian,7),(Hell Fiend,3)]
[(Dark Haze,5),(Hell Fiend,5),(Chaos Greed,5) / (Dark Haze,4),(Hell Fiend,6),(Chaos Greed,5) / (Dark Haze,7),(Hell Fiend,4),(Chaos Greed,4) / (Dark Haze,8),(Hell Fiend,4),(Chaos Greed,3) / (Dark Haze,6),(Hell Fiend,7),(Chaos Greed,2)]
[(Shaman Oaf,6),(Dark Haze,5),(Chaos Greed,4) / (Mum Rimmon,5),(Hell Fiend,5),(Chaos Greed,5) / ({437},5),(Dark Haze,5),(Hell Fiend,5) / (Mum Rimmon,5),(Hell Fiend,6),(Chaos Greed,4) / ({437},3),(Dark Haze,6),(Hell Fiend,6)]
[(Shaman Oaf,5),(Mum Rimmon,5),(Chaos Greed,5) / (Shaman Oaf,5),(Dark Haze,5),({437},5) / (Hell Fiend,5),(Mum Rimmon,5),({437},5) / (Shaman Oaf,6),(Mum Rimmon,6),(Chaos Greed,3) / (Shaman Oaf,6),(Dark Haze,6),({437},3)]
[(Shaman Oaf,3),(Mum Rimmon,5),({437},7) / (Shaman Oaf,4),(Mum Rimmon,4),({437},7) / (Shaman Oaf,5),(Mum Rimmon,4),({437},6) / (Shaman Oaf,4),(Mum Rimmon,5),({437},6) / (Shaman Oaf,5),(Mum Rimmon,5),({437},5)]
[(Shaman Oaf,5),(Mum Rimmon,5),({437},5) / (Shaman Oaf,6),(Mum Rimmon,5),({437},4) / (Shaman Oaf,6),(Mum Rimmon,6),({437},3) / (Shaman Oaf,7),(Mum Rimmon,6),({437},2) / (Shaman Oaf,7),(Mum Rimmon,7),({437},1)]' WHERE MType='431';

UPDATE MonsterInfo set MonsterSummonInfo='
[(Moderas,6),(Chief Dirty Strider,6),(Chief Estroider,6) / (Widows,7),(Chief Dirty Strider,6),(Chief Estroider,5) / (Widows,7),(Hoble,7),(Chief Estroider,4) / (Widows,8),(Big Fang,6),(Chief Estroider,4) / (Blood Warlock,8),(Big Fang,7),(Chief Estroider,3)]
[(Blood Warlock,6),(Big Fang,5),(Golemer,4) / (Shadow Wing,5),(Big Fang,6),(Golemer,4) / (Shadow Wing,6),(Big Fang,5),(Crimson Slaughter,4) / (Shadow Wing,5),(Reaper,6),(Crimson Slaughter,4) / (Shadow Wing,6),(Reaper,6),(Chaos Knight,3)]
[(Dark Screamer,5),(Hell Wizard,5),(Chaos Knight,5) / (Dark Screamer,6),(Hell Wizard,5),(Chaos Guardian,4) / (Dark Screamer,6),(Hell Guardian,6),(Chaos Guardian,3) / (Dark Screamer,5),(Hell Guardian,6),(Lord Chaos,4) / (Dark Screamer,6),(Hell Guardian,6),(Chaos Knight,3)]
[(Lord Chaos,5),(Dark Haze,5),(Hell Fiend,5) / (Lord Chaos,5),(Dark Haze,6),(Hell Fiend,4) / (Lord Chaos,4),(Dark Haze,6),(Hell Fiend,5) / (Lord Chaos,4),(Dark Haze,5),(Hell Fiend,6) / (Lord Chaos,3),(Dark Haze,6),(Hell Fiend,6)]
[(Lord Darkness,2),(Dark Guardian,7),(Hell Fiend,6) / (Lord Darkness,1),(Dark Guardian,7),(Hell Fiend,7) / (Lord Darkness,3),(Dark Guardian,7),(Hell Fiend,5) / (Lord Darkness,4),(Dark Guardian,7),(Hell Fiend,4) / (Lord Darkness,5),(Dark Guardian,7),(Hell Fiend,3)]
[(Dark Haze,5),(Hell Fiend,5),(Chaos Greed,5) / (Dark Haze,5),(Hell Fiend,6),(Chaos Greed,4) / (Dark Haze,5),(Hell Fiend,6),(Chaos Greed,4) / (Dark Haze,6),(Hell Fiend,6),(Chaos Greed,3) / (Dark Haze,5),(Hell Fiend,7),(Chaos Greed,3)]
[(Shaman Oaf,6),(Dark Haze,6),(Chaos Greed,3) / (Mum Rimmon,6),(Hell Fiend,6),(Chaos Greed,3) / ({437},3),(Dark Haze,6),(Hell Fiend,6) / (Mum Rimmon,6),(Hell Fiend,7),(Chaos Greed,2) / ({437},2),(Dark Haze,7),(Hell Fiend,6)]
[(Shaman Oaf,7),(Mum Rimmon,5),(Chaos Greed,3) / (Shaman Oaf,6),(Dark Haze,6),({437},3) / (Hell Fiend,6),(Mum Rimmon,5),({437},4) / (Shaman Oaf,6),(Mum Rimmon,6),(Chaos Greed,3) / (Shaman Oaf,6),(Dark Haze,6),({437},3)]
[(Shaman Oaf,5),(Mum Rimmon,5),({437},5) / (Shaman Oaf,4),(Mum Rimmon,6),({437},5) / (Shaman Oaf,6),(Mum Rimmon,5),({437},4) / (Shaman Oaf,5),(Mum Rimmon,6),({437},4) / (Shaman Oaf,6),(Mum Rimmon,6),({437},3)]
[(Shaman Oaf,6),(Mum Rimmon,5),({437},4) / (Shaman Oaf,6),(Mum Rimmon,6),({437},3) / (Shaman Oaf,7),(Mum Rimmon,6),({437},2) / (Shaman Oaf,7),(Mum Rimmon,7),({437},1) / (Shaman Oaf,8),(Mum Rimmon,6),({437},1)]' WHERE MType='433';

Translate Monster Name!

image

Monster.cpp.zip

And Update MonsterInfo:

UPDATE MonsterInfo set EName='Chief C Slaughter' WHERE MType='584';
UPDATE MonsterInfo set EName='Quest C Slaughter' WHERE MType='644';
UPDATE MonsterInfo set EName='Boss C Slaughter' WHERE MType='682';
UPDATE MonsterInfo set EName='Dup Gilles de Rais' WHERE MType='721';
UPDATE MonsterInfo set EName='Awak Gilles de Rais' WHERE MType='723';

'libCore.a' file does not exist.

issue
When I enter the 'make' command to build, it says that the 'libCore.a' file does not exist.
I tried to find it. but it's really not exist in your project what I cloned.
How can I solve it?
Can I receive that file?

gameserver panic in Profile.cpp when start up occasionally

GameServer::init() : ObjectManager Initialization Success...
GameServer::init() : ThreadManager Initialization Success...
GameServer::init() : PacketFactoryManager Initialization Success...
GameServer::init() : PacketValidator Initialization Success...
GameServer::init() : LoginServerManager Initialization Success...
GameServer::init() : SharedServerManager Initialization Success...
GameServer::init() : MPacketManager Initialization Success...
GameServer::init() : MPlayerManager Initialization Success...
MAX SERVER GROUP = 1
WorldID:1 ServerGroupID:0 follows0
GameServerInfoManager(
GameServerInfo(ServerID: 1,Nickname:game1,IP: 192.168.0.16,TCPPort:9998,UDPPort:9997,GroupID:0,WorldID:1,ServerStat:0)
)EMPTY)
GameServer::init() : GameServerInfoManager Initialization Success...
Adding TID connection BEGIN
Adding TID connection END
******************************************************
 THREAD CONNECT UIIRIBUTION DB 
 TID Number = -199259776
******************************************************
GameServer::init() : ClientManager Initialization Success...
>>> GAME SERVER INITIALIZATION SUCCESS...
>>> STARTING THREAD MANAGER...
[New Thread 0x7ffff41a4700 (LWP 873606)]
[New Thread 0x7ffff39a3700 (LWP 873607)]
>>> STARTING LOGIN SERVER MANAGER...
[New Thread 0x7ffff31a2700 (LWP 873608)]
>>> STARTING SHARED SERVER MANAGER...
[New Thread 0x7ffff29a1700 (LWP 873609)]
[New Thread 0x7ffff21a0700 (LWP 873610)]
>>> STARTING MOFUS PLAYER MANAGER...
Init GDR Lair Manager
2022.09.26-14:00:00:000�� ���巹 ���� �ٽ� ����
2022.09.26-14:00:00:000�� ���巹 ���� �ٽ� ����
[New Thread 0x7ffff199f700 (LWP 873611)]
>>> ALL INITIALIZATIONS ARE COMPLETED SUCCESSFULLY.
>>> STARTING ClientManager->start() INFINITE LOOP...
Adding TID connection BEGINAdding TID connection BEGIN

Adding TID connection END
************************************************************************
************************************************************************
************************************************************************
************************************************************************
OPEN LOGIN DB
************************************************************************
************************************************************************
************************************************************************
Adding TID connection END
******************************************************
 THREAD CONNECT DB 
******************************************************
Adding TID connection BEGINAdding TID connection BEGIN

Adding TID connection BEGIN
Adding TID connection ENDAdding TID connection END

Adding TID connection END******************************************************

 Mofus THREAD CONNECT DB 
******************************************************
******************************************************
 THREAD CONNECT DB 
******************************************************
************************************************************************
OPEN LOGIN DB
************************************************************************
Adding TID connection BEGIN
Adding TID connection END
******************************************************
 GDR Lair THREAD CONNECT DB 
******************************************************
connection to sharedserver established
Send:438 GSRequestGuildInfo
Receive:SGGuildInfo()
Adding TID connection BEGIN
Adding TID connection END
******************************************************
 THREAD CONNECT UIIRIBUTION DB 
 TID Number = -207997184
******************************************************
Adding TID connection BEGIN
Adding TID connection END
******************************************************
 THREAD CONNECT UIIRIBUTION DB 
 TID Number = -199604480
******************************************************

Thread 7 "gameserver" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff199f700 (LWP 873611)]

From the panic stack, it seems that the hash table is not initialized, which should be done in ZoneGroupThread.cpp initProfileEx()

Maybe this is related to parallel, the execution order of the threads is undetermined, so maybe ZoneGroupThread has not run when GDRLairManager::run goes to endProfile...

Or, maybe a data race?

(gdb) bt
#0  0x0000555555fcf700 in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_bucket_index (this=0xbb80, __k="ZPM_QUERY", __c=10880332307479813206)
    at /usr/include/c++/9/bits/hashtable.h:676
#1  0x0000555555fcf373 in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::find (this=0xbb80, __k="ZPM_QUERY") at /usr/include/c++/9/bits/hashtable.h:1453
#2  0x0000555555fcf211 in std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >::find (this=0xbb80, __x="ZPM_QUERY") at /usr/include/c++/9/bits/unordered_map.h:922
#3  0x0000555557ed0a2f in ProfileSampleSet::endProfile (this=0x0, name="ZPM_QUERY") at Profile.cpp:182
#4  0x0000555557e92398 in Statement::executeQuery (this=0x7fffd4007e80) at Statement.cpp:139
#5  0x0000555557e926d3 in Statement::executeQueryString (this=0x7fffd4007e80, sqlStatement="SELECT 1") at Statement.cpp:160
#6  0x0000555557e9c0ab in DatabaseManager::executeDummyQuery (this=0x55556108e9f0, pConnection=0x7fffd4000b60) at DatabaseManager.cpp:496
#7  0x00005555563aeae0 in GDRLairManager::run (this=0x55555dcd8520 <GDRLairManager::Instance()::theInstance>) at GDRLairManager.cpp:99
#8  0x0000555557ec3b9f in start_routine (derivedThread=0x55555dcd8540 <GDRLairManager::Instance()::theInstance+32>) at Thread.cpp:225
#9  0x00007ffff7f95609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007ffff7092163 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) 
#0  0x0000555555fcf700 in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_bucket_index (this=0xbb80, __k="ZPM_QUERY", __c=10880332307479813206)
    at /usr/include/c++/9/bits/hashtable.h:676
#1  0x0000555555fcf373 in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::find (this=0xbb80, __k="ZPM_QUERY") at /usr/include/c++/9/bits/hashtable.h:1453
#2  0x0000555555fcf211 in std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >::find (this=0xbb80, __x="ZPM_QUERY") at /usr/include/c++/9/bits/unordered_map.h:922
#3  0x0000555557ed0a2f in ProfileSampleSet::endProfile (this=0x0, name="ZPM_QUERY") at Profile.cpp:182
#4  0x0000555557e92398 in Statement::executeQuery (this=0x7fffd4007e80) at Statement.cpp:139
#5  0x0000555557e926d3 in Statement::executeQueryString (this=0x7fffd4007e80, sqlStatement="SELECT 1") at Statement.cpp:160
#6  0x0000555557e9c0ab in DatabaseManager::executeDummyQuery (this=0x55556108e9f0, pConnection=0x7fffd4000b60) at DatabaseManager.cpp:496
#7  0x00005555563aeae0 in GDRLairManager::run (this=0x55555dcd8520 <GDRLairManager::Instance()::theInstance>) at GDRLairManager.cpp:99
#8  0x0000555557ec3b9f in start_routine (derivedThread=0x55555dcd8540 <GDRLairManager::Instance()::theInstance+32>) at Thread.cpp:225
#9  0x00007ffff7f95609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007ffff7092163 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

server on ubuntu help

can u please make better tuttorial for server install into ubuntu please??? Thanx or add me on discord Supacek
#2400

im messing with somethink
image

Connect to sharedserver fail

image

while im using this
image
i have connec to shared server fail but if im using script for start theres no problem anyone know why?

image

Talking to NPC, click "I want to buy ..." option, the client panic

This is caused by the packet size is not as expected.
When the database is translated to UTF8, it takes more bytes for some string.
And then the assumption for some packet max size doesn't hold any more.

There are two options to fix:

  • change the database to latin1 and the client has their own (different) encoding
  • change the database to utf8 and fix all the bugs

I'm not sure option 2 is a better choice. There maybe a lot of packet max size related errors.
But to support different languages, utf8 seems a big deal.

error while loading shared libraries: libmysqlclient.so.21

I'm trying to run binaries in a different environment (Ubuntu 14.0.4), with different versions of gcc (4.8.4) and I get the following error:

ERROR
./gameserver: error while loading shared libraries: libmysqlclient.so.21: cannot open shared object file: No such file or directory

Is it possible to run the compiled binaries in a different server?
Do you know how to bundle the required shared libraries into the final binary?
I ask because it makes more sense not to virtualize (dockerize) a native Linux server (although Docker makes it very easy the deployment in different servers).

gcc -v

# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.4-2ubuntu1\~14.04.4' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4)

LSB_RELEASE -A

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.6 LTS
Release:        14.04
Codename:       trusty

docker support

Many developer use docker, especially those Windows developer.
So it would be nice to support docker

hi tiancaiamao

hi tiancaiamao

Its good that you revived opendarkeden.
this project closed a while after the owner opened a server
it was already 10 years ago i think???

can i contact you?

Error starting gameserver

I managed to build the server. The login and shared servers seem to start without issues.
But when the gameserver starts i get this:

Load - ousters_filename:/home/chrius/darkeden/data/Class9.ousters.bin <-- seems to load correctly. it's the last one that works
Load - slayer_filename:/home/chrius/darkeden/data/????1.slayer.bin
Cannot open /home/chrius/darkeden/data/????1.slayer.bin to read.

The directory set in gameserver.conf is correct, and all the various Class files (ex: Class1.slayer.bin) load correctly before the error.
I think the problem might be related to language support (I'm using Ubuntu 20.04 en_US), and this file might be one of the files with chinese characters on their names.
However I tried installing the chinese language pack with no success, and I'm not really sure I installed the correct one...

I don't know a lot about linux so I might have done something wrong... what could have caused this issue? And if it's the language support, what do I need to install for it to work?

Character Storage error

Hello, today, check the character storages, I found that the error of disappearing items when you relog still persists, follow the error png...
npc

Recover the packet order to check if it's compatible with 鬼魅炼狱

鬼魅炼狱.exe is a widely used Chinese client, but it seems not compatible with this server.

Here is the packet ID definitions:

server/src/Core/Packet.h

Lines 70 to 560 in 3565281

/* enum
{
PACKET_CG_ADD_SMS_ADDRESS=0, // 0
PACKET_CG_ABSORB_SOUL, // 1
PACKET_CG_ACCEPT_UNION, // 2
PACKET_CG_ADD_GEAR_TO_MOUSE, // 3
PACKET_CG_ADD_INVENTORY_TO_MOUSE, // 4
PACKET_CG_ADD_ITEM_TO_CODE_SHEET, // 5
PACKET_CG_ADD_ITEM_TO_ITEM, // 6
PACKET_CG_ADD_MOUSE_TO_GEAR, // 7
PACKET_CG_ADD_MOUSE_TO_INVENTORY, // 8
PACKET_CG_ADD_MOUSE_TO_QUICKSLOT, // 9
PACKET_CG_ADD_MOUSE_TO_ZONE, // 10
PACKET_CG_ADD_QUICKSLOT_TO_MOUSE, // 11
PACKET_CG_ADD_ZONE_TO_INVENTORY, // 12
PACKET_CG_ADD_ZONE_TO_MOUSE, // 13
PACKET_CG_APPOINT_SUBMASTER, // 14
PACKET_CG_ATTACK, // 15
PACKET_CG_AUTH_KEY, // 16
PACKET_CG_BLOOD_DRAIN, // 17
PACKET_CG_BUY_STORE_ITEM, // 18
PACKET_CG_CASTING_SKILL, // 19
PACKET_CG_COMMAND_MONSTER, // 20
PACKET_CG_CONNECT, // 21
PACKET_CG_CRASH_REPORT, // 22
PACKET_CG_DELETE_SMS_ADDRESS, // 23
PACKET_CG_DENY_UNION, // 24
PACKET_CG_DEPOSIT_PET, // 25
PACKET_CG_DIAL_UP, // 26
PACKET_CG_DISPLAY_ITEM, // 27
PACKET_CG_DISSECTION_CORPSE, // 28
PACKET_CG_DONATION_MONEY, // 29
PACKET_CG_DOWN_SKILL, // 30
PACKET_CG_DROP_MONEY, // 31
PACKET_CG_EXPEL_GUILD, // 32
PACKET_CG_EXPEL_GUILD_MEMBER, // 33
PACKET_CG_FAIL_QUEST, // 34
PACKET_CG_GET_EVENT_ITEM, // 35
PACKET_CG_GET_OFF_MOTORCYCLE, // 36
PACKET_CG_GLOBAL_CHAT, // 37
PACKET_CG_GQUEST_ACCEPT, // 38
PACKET_CG_GQUEST_CANCEL, // 39
PACKET_CG_GUILD_CHAT, // 40
PACKET_CG_JOIN_GUILD, // 41
PACKET_CG_LEARN_SKILL, // 42
PACKET_CG_LOGOUT, // 43
PACKET_CG_LOTTERY_SELECT, // 44
PACKET_CG_MAKE_ITEM, // 45
PACKET_CG_MIX_ITEM, // 46
PACKET_CG_MODIFY_GUILD_INTRO, // 47
PACKET_CG_MODIFY_GUILD_MEMBER, // 48
PACKET_CG_MODIFY_GUILDMEMBER_INTRO, // 49
PACKET_CG_MODIFY_NICKNAME, // 50
PACKET_CG_MODIFY_TAX_RATIO, // 51
PACKET_CG_MOUSE_TO_STASH, // 52
PACKET_CG_MOVE, // 53
PACKET_CG_NPC_ASK_ANSWER, // 54
PACKET_CG_NPC_TALK, // 55
PACKET_CG_PARTY_INVITE, // 56
PACKET_CG_PARTY_LEAVE, // 57
PACKET_CG_PARTY_POSITION, // 58
PACKET_CG_PARTY_SAY, // 59
PACKET_CG_PET_GAMBLE, // 60
PACKET_CG_PHONE_DISCONNECT, // 61
PACKET_CG_PHONE_SAY, // 62
PACKET_CG_PICKUP_MONEY, // 63
PACKET_CG_PORT_CHECK, // 64
PACKET_CG_QUIT_GUILD, // 65
PACKET_CG_QUIT_UNION, // 66
PACKET_CG_QUIT_UNION_ACCEPT, // 67
PACKET_CG_QUIT_UNION_DENY, // 68
PACKET_CG_RANGER_SAY, // 69
PACKET_CG_READY, // 70
PACKET_CG_REGIST_GUILD, // 71
PACKET_CG_RELIC_TO_OBJECT, // 72
PACKET_CG_RELOAD_FROM_INVENTORY, // 73
PACKET_CG_RELOAD_FROM_QUICKSLOT, // 74
PACKET_CG_REQUEST_GUILD_LIST, // 75
PACKET_CG_REQUEST_GUILD_MEMBER_LIST, // 76
PACKET_CG_REQUEST_INFO, // 77
PACKET_CG_REQUEST_IP, // 78
PACKET_CG_REQUEST_NEWBIE_ITEM, // 79
PACKET_CG_REQUEST_POWER_POINT, // 80
PACKET_CG_REQUEST_REPAIR, // 81
PACKET_CG_REQUEST_STORE_INFO, // 82
PACKET_CG_REQUEST_UNION, // 83
PACKET_CG_REQUEST_UNION_INFO, // 84
PACKET_CG_RESURRECT, // 85
PACKET_CG_RIDE_MOTORCYCLE, // 86
PACKET_CG_SAY, // 87
PACKET_CG_SELECT_BLOOD_BIBLE, // 88
PACKET_CG_SELECT_GUILD, // 89
PACKET_CG_SELECT_GUILD_MEMBER, // 90
PACKET_CG_SELECT_NICKNAME, // 91
PACKET_CG_SELECT_PORTAL, // 92
PACKET_CG_SELECT_QUEST, // 93
PACKET_CG_SELECT_RANK_BONUS, // 94
PACKET_CG_SELECT_REGEN_ZONE, // 95
PACKET_CG_SELECT_TILE_EFFECT, // 96
PACKET_CG_SELECT_WAYPOINT, // 97
PACKET_CG_SET_SLAYER_HOT_KEY, // 98
PACKET_CG_SET_VAMPIRE_HOT_KEY, // 99
PACKET_CG_SHOP_REQUEST_BUY, // 100
PACKET_CG_SHOP_REQUEST_LIST, // 101
PACKET_CG_SHOP_REQUEST_SELL, // 102
PACKET_CG_SILVER_COATING, // 103
PACKET_CG_SKILL_TO_INVENTORY, // 104
PACKET_CG_SKILL_TO_NAMED, // 105
PACKET_CG_SKILL_TO_OBJECT, // 106
PACKET_CG_SKILL_TO_SELF, // 107
PACKET_CG_SKILL_TO_TILE, // 108
PACKET_CG_SMS_ADDRESS_LIST, // 109
PACKET_CG_SMS_SEND, // 110
PACKET_CG_STASH_DEPOSIT, // 111
PACKET_CG_STASH_LIST, // 112
PACKET_CG_STASH_REQUEST_BUY, // 113
PACKET_CG_STASH_TO_MOUSE, // 114
PACKET_CG_STASH_WITHDRAW, // 115
PACKET_CG_STORE_CLOSE, // 116
PACKET_CG_STORE_OPEN, // 117
PACKET_CG_STORE_SIGN, // 118
PACKET_CG_SUBMIT_SCORE, // 119
PACKET_CG_TAKE_OUT_GOOD, // 120
PACKET_CG_TAME_MONSTER, // 121
PACKET_CG_THROW_BOMB, // 122
PACKET_CG_THROW_ITEM, // 123
PACKET_CG_TRADE_ADD_ITEM, // 124
PACKET_CG_TRADE_FINISH, // 125
PACKET_CG_TRADE_MONEY, // 126
PACKET_CG_TRADE_PREPARE, // 127
PACKET_CG_TRADE_REMOVE_ITEM, // 128
PACKET_CG_TRY_JOIN_GUILD, // 129
PACKET_CG_TYPE_STRING_LIST, // 130
PACKET_CG_UNBURROW, // 131
PACKET_CG_UNDISPLAY_ITEM, // 132
PACKET_CG_UNTRANSFORM, // 133
PACKET_CG_USE_BONUS_POINT, // 134
PACKET_CG_USE_ITEM_FROM_GEAR, // 135
PACKET_CG_USE_ITEM_FROM_GQUEST_INVENTORY, // 136
PACKET_CG_USE_ITEM_FROM_INVENTORY, // 137
PACKET_CG_USE_MESSAGE_ITEM_FROM_INVENTORY, // 138
PACKET_CG_USE_POTION_FROM_INVENTORY, // 139
PACKET_CG_USE_POTION_FROM_QUICKSLOT, // 140
PACKET_CG_USE_POWER_POINT, // 141
PACKET_CG_VERIFY_TIME, // 142
PACKET_CG_VISIBLE, // 143
PACKET_CG_WHISPER, // 144
PACKET_CG_WITHDRAW_PET, // 145
PACKET_CG_WITHDRAW_TAX, // 146
PACKET_CL_CHANGE_SERVER, // 147
PACKET_CL_CREATE_PC, // 148
PACKET_CL_DELETE_PC, // 149
PACKET_CL_GET_PC_LIST, // 150
PACKET_CL_GET_SERVER_LIST, // 151
PACKET_CL_GET_WORLD_LIST, // 152
PACKET_CL_LOGIN, // 153
PACKET_CL_LOGOUT, // 154
PACKET_CL_QUERY_CHARACTER_NAME, // 155
PACKET_CL_QUERY_PLAYER_ID, // 156
PACKET_CL_RECONNECT_LOGIN, // 157
PACKET_CL_REGISTER_PLAYER, // 158
PACKET_CL_SELECT_PC, // 159
PACKET_CL_SELECT_SERVER, // 160
PACKET_CL_SELECT_WORLD, // 161
PACKET_CL_VERSION_CHECK, // 162
PACKET_COMMON_BILLING, // 163
PACKET_CR_CONNECT, // 164
PACKET_CR_DISCONNECT, // 165
PACKET_CR_REQUEST, // 166
PACKET_CR_WHISPER, // 167
PACKET_CU_BEGIN_UPDATE, // 168
PACKET_CU_END_UPDATE, // 169
PACKET_CU_REQUEST, // 170
PACKET_CU_REQUEST_LOGIN_MODE, // 171
PACKET_GC_ACTIVE_GUILD_LIST, // 172
PACKET_GC_ADD_BAT, // 173
PACKET_GC_ADD_BURROWING_CREATURE, // 174
PACKET_GC_ADD_EFFECT, // 175
PACKET_GC_ADD_EFFECT_TO_TILE, // 176
PACKET_GC_ADD_GEAR_TO_INVENTORY, // 177
PACKET_GC_ADD_GEAR_TO_ZONE, // 178
PACKET_GC_ADD_HELICOPTER, // 179
PACKET_GC_ADD_INJURIOUS_CREATURE, // 180
PACKET_GC_ADD_INSTALLED_MINE_TO_ZONE, // 181
PACKET_GC_ADD_ITEM_TO_ITEM_VERIFY, // 182
PACKET_GC_ADD_MONSTER, // 183
PACKET_GC_ADD_MONSTER_CORPSE, // 184
PACKET_GC_ADD_MONSTER_FROM_BURROWING, // 185
PACKET_GC_ADD_MONSTER_FROM_TRANSFORMATION, // 186
PACKET_GC_ADD_NEW_ITEM_TO_ZONE, // 187
PACKET_GC_ADD_NICKNAME, // 188
PACKET_GC_ADD_NPC, // 189
PACKET_GC_ADD_OUSTERS, // 190
PACKET_GC_ADD_OUSTERS_CORPSE, // 191
PACKET_GC_ADD_SLAYER, // 192
PACKET_GC_ADD_SLAYER_CORPSE, // 193
PACKET_GC_ADD_STORE_ITEM, // 194
PACKET_GC_ADD_VAMPIRE, // 195
PACKET_GC_ADD_VAMPIRE_CORPSE, // 196
PACKET_GC_ADD_VAMPIRE_FROM_BURROWING, // 197
PACKET_GC_ADD_VAMPIRE_FROM_TRANSFORMATION, // 198
PACKET_GC_ADD_VAMPIRE_PORTAL, // 199
PACKET_GC_ADD_WOLF, // 200
PACKET_GC_ADDRESS_LIST_VERIFY, // 201
PACKET_GC_ATTACK, // 202
PACKET_GC_ATTACK_ARMS_OK_1, // 203
PACKET_GC_ATTACK_ARMS_OK_2, // 204
PACKET_GC_ATTACK_ARMS_OK_3, // 205
PACKET_GC_ATTACK_ARMS_OK_4, // 206
PACKET_GC_ATTACK_ARMS_OK_5, // 207
PACKET_GC_ATTACK_MELEE_OK_1, // 208
PACKET_GC_ATTACK_MELEE_OK_2, // 209
PACKET_GC_ATTACK_MELEE_OK_3, // 210
PACKET_GC_AUTH_KEY, // 211
PACKET_GC_BLOOD_BIBLE_LIST, // 212
PACKET_GC_BLOOD_BIBLE_SIGN_INFO, // 213
PACKET_GC_BLOOD_BIBLE_STATUS, // 214
PACKET_GC_BLOOD_DRAIN_OK_1, // 215
PACKET_GC_BLOOD_DRAIN_OK_2, // 216
PACKET_GC_BLOOD_DRAIN_OK_3, // 217
PACKET_GC_CANNOT_ADD, // 218
PACKET_GC_CANNOT_USE, // 219
PACKET_GC_CASTING_SKILL, // 220
PACKET_GC_CHANGE_DARK_LIGHT, // 221
PACKET_GC_CHANGE_SHAPE, // 222
PACKET_GC_CHANGE_WEATHER, // 223
PACKET_GC_CREATE_ITEM, // 224
PACKET_GC_CREATURE_DIED, // 225
PACKET_GC_CROSS_COUNTER_OK_1, // 226
PACKET_GC_CROSS_COUNTER_OK_2, // 227
PACKET_GC_CROSS_COUNTER_OK_3, // 228
PACKET_GC_DELETE_AND_PICKUP_OK, // 229
PACKET_GC_DELETE_EFFECT_FROM_TILE, // 230
PACKET_GC_DELETE_INVENTORY_ITEM, // 231
PACKET_GC_DELETE_OBJECT, // 232
PACKET_GC_DISCONNECT, // 233
PACKET_GC_DOWN_SKILL_FAILED, // 234
PACKET_GC_DOWN_SKILL_OK, // 235
PACKET_GC_DROP_ITEM_TO_ZONE, // 236
PACKET_GC_ENTER_VAMPIRE_PORTAL, // 237
PACKET_GC_EXECUTE_ELEMENT, // 238
PACKET_GC_FAKE_MOVE, // 239
PACKET_GC_FAST_MOVE, // 240
PACKET_GC_FLAG_WAR_STATUS, // 241
PACKET_GC_GET_DAMAGE, // 242
PACKET_GC_GET_OFF_MOTORCYCLE, // 243
PACKET_GC_GET_OFF_MOTORCYCLE_FAILED, // 244
PACKET_GC_GET_OFF_MOTORCYCLE_OK, // 245
PACKET_GC_GLOBAL_CHAT, // 246
PACKET_GC_GOODS_LIST, // 247
PACKET_GC_GQUEST_INVENTORY, // 248
PACKET_GC_GQUEST_STATUS_INFO, // 249
PACKET_GC_GQUEST_STATUS_MODIFY, // 250
PACKET_GC_GUILD_CHAT, // 251
PACKET_GC_GUILD_MEMBER_LIST, // 252
PACKET_GC_GUILD_RESPONSE, // 253
PACKET_GC_HOLY_LAND_BONUS_INFO, // 254
PACKET_GC_HP_RECOVERY_END_TO_OTHERS, // 255
PACKET_GC_HP_RECOVERY_END_TO_SELF, // 256
PACKET_GC_HP_RECOVERY_START_TO_OTHERS, // 257
PACKET_GC_HP_RECOVERY_START_TO_SELF, // 258
PACKET_GC_KICK_MESSAGE, // 259
PACKET_GC_KNOCK_BACK, // 260
PACKET_GC_KNOCKS_TARGET_BACK_OK_1, // 261
PACKET_GC_KNOCKS_TARGET_BACK_OK_2, // 262
PACKET_GC_KNOCKS_TARGET_BACK_OK_4, // 263
PACKET_GC_KNOCKS_TARGET_BACK_OK_5, // 264
PACKET_GC_LEARN_SKILL_FAILED, // 265
PACKET_GC_LEARN_SKILL_OK, // 266
PACKET_GC_LEARN_SKILL_READY, // 267
PACKET_GC_LIGHTNING, // 268
PACKET_GC_MAKE_ITEM_FAIL, // 269
PACKET_GC_MAKE_ITEM_OK, // 270
PACKET_GC_MINE_EXPLOSION_OK_1, // 271
PACKET_GC_MINE_EXPLOSION_OK_2, // 272
PACKET_GC_MINI_GAME_SCORES, // 273
PACKET_GC_MODIFY_GUILD_MEMBER_INFO, // 274
PACKET_GC_MODIFY_INFORMATION, // 275
PACKET_GC_MODIFY_MONEY, // 276
PACKET_GC_MODIFY_NICKNAME, // 277
PACKET_GC_MONSTER_KILL_QUEST_INFO, // 278
PACKET_GC_MORPH_1, // 279
PACKET_GC_MORPH_SLAYER_2, // 280
PACKET_GC_MORPH_VAMPIRE_2, // 281
PACKET_GC_MOVE, // 282
PACKET_GC_MOVE_ERROR, // 283
PACKET_GC_MOVE_OK, // 284
PACKET_GC_MP_RECOVERY_END, // 285
PACKET_GC_MP_RECOVERY_START, // 286
PACKET_GC_MY_STORE_INFO, // 287
PACKET_GC_NICKNAME_LIST, // 288
PACKET_GC_NICKNAME_VERIFY, // 289
PACKET_GC_NOTICE_EVENT, // 290
PACKET_GC_NOTIFY_WIN, // 291
PACKET_GC_NPC_ASK, // 292
PACKET_GC_NPC_ASK_DYNAMIC, // 293
PACKET_GC_NPC_ASK_VARIABLE, // 294
PACKET_GC_NPC_INFO, // 295
PACKET_GC_NPC_RESPONSE, // 296
PACKET_GC_NPC_SAY, // 297
PACKET_GC_NPC_SAY_DYNAMIC, // 298
PACKET_GC_OTHER_GUILD_NAME, // 299
PACKET_GC_OTHER_MODIFY_INFO, // 300
PACKET_GC_OTHER_STORE_INFO, // 301
PACKET_GC_PARTY_ERROR, // 302
PACKET_GC_PARTY_INVITE, // 303
PACKET_GC_PARTY_JOINED, // 304
PACKET_GC_PARTY_LEAVE, // 305
PACKET_GC_PARTY_POSITION, // 306
PACKET_GC_PARTY_SAY, // 307
PACKET_GC_PET_INFO, // 308
PACKET_GC_PET_STASH_LIST, // 309
PACKET_GC_PET_STASH_VERIFY, // 310
PACKET_GC_PET_USE_SKILL, // 311
PACKET_GC_PHONE_CONNECTED, // 312
PACKET_GC_PHONE_CONNECTION_FAILED, // 313
PACKET_GC_PHONE_DISCONNECTED, // 314
PACKET_GC_PHONE_SAY, // 315
PACKET_GC_QUEST_STATUS, // 316
PACKET_GC_RANK_BONUS_INFO, // 317
PACKET_GC_REAL_WEARING_INFO, // 318
PACKET_GC_RECONNECT, // 319
PACKET_GC_RECONNECT_LOGIN, // 320
PACKET_GC_REGEN_ZONE_STATUS, // 321
PACKET_GC_RELOAD_OK, // 322
PACKET_GC_REMOVE_CORPSE_HEAD, // 323
PACKET_GC_REMOVE_EFFECT, // 324
PACKET_GC_REMOVE_FROM_GEAR, // 325
PACKET_GC_REMOVE_INJURIOUS_CREATURE, // 326
PACKET_GC_REMOVE_STORE_ITEM, // 327
PACKET_GC_REQUEST_FAILED, // 328
PACKET_GC_REQUEST_POWER_POINT_RESULT, // 329
PACKET_GC_REQUESTED_IP, // 330
PACKET_GC_RIDE_MOTORCYCLE, // 331
PACKET_GC_RIDE_MOTORCYCLE_FAILED, // 332
PACKET_GC_RIDE_MOTORCYCLE_OK, // 333
PACKET_GC_RING, // 334
PACKET_GC_SAY, // 335
PACKET_GC_SEARCH_MOTORCYCLE_FAIL, // 336
PACKET_GC_SEARCH_MOTORCYCLE_OK, // 337
PACKET_GC_SELECT_QUEST_ID, // 338
PACKET_GC_SELECT_RANK_BONUS_FAILED, // 339
PACKET_GC_SELECT_RANK_BONUS_OK, // 340
PACKET_GC_SET_POSITION, // 341
PACKET_GC_SHOP_BOUGHT, // 342
PACKET_GC_SHOP_BUY_FAIL, // 343
PACKET_GC_SHOP_BUY_OK, // 344
PACKET_GC_SHOP_LIST, // 345
PACKET_GC_SHOP_LIST_MYSTERIOUS, // 346
PACKET_GC_SHOP_MARKET_CONDITION, // 347
PACKET_GC_SHOP_SELL_FAIL, // 348
PACKET_GC_SHOP_SELL_OK, // 349
PACKET_GC_SHOP_SOLD, // 350
PACKET_GC_SHOP_VERSION, // 351
PACKET_GC_SHOW_GUILD_INFO, // 352
PACKET_GC_SHOW_GUILD_JOIN, // 353
PACKET_GC_SHOW_GUILD_MEMBER_INFO, // 354
PACKET_GC_SHOW_GUILD_REGIST, // 355
PACKET_GC_SHOW_MESSAGE_BOX, // 356
PACKET_GC_SHOW_UNION_INFO, // 357
PACKET_GC_SHOW_WAIT_GUILD_INFO, // 358
PACKET_GC_SKILL_FAILED_1, // 359
PACKET_GC_SKILL_FAILED_2, // 360
PACKET_GC_SKILL_INFO, // 361
PACKET_GC_SKILL_TO_INVENTORY_OK_1, // 362
PACKET_GC_SKILL_TO_INVENTORY_OK_2, // 363
PACKET_GC_SKILL_TO_OBJECT_OK_1, // 364
PACKET_GC_SKILL_TO_OBJECT_OK_2, // 365
PACKET_GC_SKILL_TO_OBJECT_OK_3, // 366
PACKET_GC_SKILL_TO_OBJECT_OK_4, // 367
PACKET_GC_SKILL_TO_OBJECT_OK_5, // 368
PACKET_GC_SKILL_TO_OBJECT_OK_6, // 369
PACKET_GC_SKILL_TO_SELF_OK_1, // 370
PACKET_GC_SKILL_TO_SELF_OK_2, // 371
PACKET_GC_SKILL_TO_SELF_OK_3, // 372
PACKET_GC_SKILL_TO_TILE_OK_1, // 373
PACKET_GC_SKILL_TO_TILE_OK_2, // 374
PACKET_GC_SKILL_TO_TILE_OK_3, // 375
PACKET_GC_SKILL_TO_TILE_OK_4, // 376
PACKET_GC_SKILL_TO_TILE_OK_5, // 377
PACKET_GC_SKILL_TO_TILE_OK_6, // 378
PACKET_GC_SMS_ADDRESS_LIST, // 379
PACKET_GC_STASH_LIST, // 380
PACKET_GC_STASH_SELL, // 381
PACKET_GC_STATUS_CURRENT_HP, // 382
PACKET_GC_SUB_INVENTORY_INFO, // 383
PACKET_GC_SWEEPER_BONUS_INFO, // 384
PACKET_GC_SYSTEM_AVAILABILITIES, // 385
PACKET_GC_SYSTEM_MESSAGE, // 386
PACKET_GC_TAKE_OFF, // 387
PACKET_GC_TAKE_OUT_FAIL, // 388
PACKET_GC_TAKE_OUT_OK, // 389
PACKET_GC_TEACH_SKILL_INFO, // 390
PACKET_GC_THROW_BOMB_OK_1, // 391
PACKET_GC_THROW_BOMB_OK_2, // 392
PACKET_GC_THROW_BOMB_OK_3, // 393
PACKET_GC_THROW_ITEM_OK_1, // 394
PACKET_GC_THROW_ITEM_OK_2, // 395
PACKET_GC_THROW_ITEM_OK_3, // 396
PACKET_GC_TIME_LIMIT_ITEM_INFO, // 397
PACKET_GC_TRADE_ADD_ITEM, // 398
PACKET_GC_TRADE_ERROR, // 399
PACKET_GC_TRADE_FINISH, // 400
PACKET_GC_TRADE_MONEY, // 401
PACKET_GC_TRADE_PREPARE, // 402
PACKET_GC_TRADE_REMOVE_ITEM, // 403
PACKET_GC_TRADE_VERIFY, // 404
PACKET_GC_UNBURROW_FAIL, // 405
PACKET_GC_UNBURROW_OK, // 406
PACKET_GC_UNION_OFFER_LIST, // 407
PACKET_GC_UNTRANSFORM_FAIL, // 408
PACKET_GC_UNTRANSFORM_OK, // 409
PACKET_GC_UPDATE_INFO, // 410
PACKET_GC_USE_BONUS_POINT_FAIL, // 411
PACKET_GC_USE_BONUS_POINT_OK, // 412
PACKET_GC_USE_OK, // 413
PACKET_GC_USE_POWER_POINT_RESULT, // 414
PACKET_GC_VISIBLE_FAIL, // 415
PACKET_GC_VISIBLE_OK, // 416
PACKET_GC_WAIT_GUILD_LIST, // 417
PACKET_GC_WAR_LIST, // 418
PACKET_GC_WAR_SCHEDULE_LIST, // 419
PACKET_GC_WHISPER, // 420
PACKET_GC_WHISPER_FAILED, // 421
PACKET_GG_COMMAND, // 422
PACKET_GG_GUILD_CHAT, // 423
PACKET_GG_SERVER_CHAT, // 424
PACKET_GL_INCOMING_CONNECTION, // 425
PACKET_GL_INCOMING_CONNECTION_ERROR, // 426
PACKET_GL_INCOMING_CONNECTION_OK, // 427
PACKET_GL_KICK_VERIFY, // 428
PACKET_GM_SERVER_INFO, // 429
PACKET_GS_ADD_GUILD, // 430
PACKET_GS_ADD_GUILD_MEMBER, // 431
PACKET_GS_EXPEL_GUILD_MEMBER, // 432
PACKET_GS_GUILD_ACTION, // 433
PACKET_GS_GUILDMEMBER_LOGON, // 434
PACKET_GS_MODIFY_GUILD_INTRO, // 435
PACKET_GS_MODIFY_GUILD_MEMBER, // 436
PACKET_GS_QUIT_GUILD, // 437
PACKET_GS_REQUEST_GUILD_INFO, // 438
PACKET_GTO_ACKNOWLEDGEMENT, // 439
PACKET_LC_CREATE_PC_ERROR, // 440
PACKET_LC_CREATE_PC_OK, // 441
PACKET_LC_DELETE_PC_ERROR, // 442
PACKET_LC_DELETE_PC_OK, // 443
PACKET_LC_LOGIN_ERROR, // 444
PACKET_LC_LOGIN_OK, // 445
PACKET_LC_PC_LIST, // 446
PACKET_LC_PORT_CHECK, // 447
PACKET_LC_QUERY_RESULT_CHARACTER_NAME, // 448
PACKET_LC_QUERY_RESULT_PLAYER_ID, // 449
PACKET_LC_RECONNECT, // 450
PACKET_LC_REGISTER_PLAYER_ERROR, // 451
PACKET_LC_REGISTER_PLAYER_OK, // 452
PACKET_LC_SELECT_PC_ERROR, // 453
PACKET_LC_SERVER_LIST, // 454
PACKET_LC_VERSION_CHECK_ERROR, // 455
PACKET_LC_VERSION_CHECK_OK, // 456
PACKET_LC_WORLD_LIST, // 457
PACKET_LG_INCOMING_CONNECTION, // 458
PACKET_LG_INCOMING_CONNECTION_ERROR, // 459
PACKET_LG_INCOMING_CONNECTION_OK, // 460
PACKET_LG_KICK_CHARACTER, // 461
PACKET_RC_CHARACTER_INFO, // 462
PACKET_RC_CONNECT_VERIFY, // 463
PACKET_RC_POSITION_INFO, // 464
PACKET_RC_REQUEST_VERIFY, // 465
PACKET_RC_REQUESTED_FILE, // 466
PACKET_RC_SAY, // 467
PACKET_RC_STATUS_HP, // 468
PACKET_SG_ADD_GUILD_MEMBER_OK, // 469
PACKET_SG_ADD_GUILD_OK, // 470
PACKET_SG_DELETE_GUILD_OK, // 471
PACKET_SG_EXPEL_GUILD_MEMBER_OK, // 472
PACKET_SG_GUILD_INFO, // 473
PACKET_SG_GUILD_RESPONSE, // 474
PACKET_SG_GUILDMEMBER_LOGON_OK, // 475
PACKET_SG_MODIFY_GUILD_INTRO_OK, // 476
PACKET_SG_MODIFY_GUILD_MEMBER_OK, // 477
PACKET_SG_MODIFY_GUILD_OK, // 478
PACKET_SG_QUIT_GUILD_OK, // 479
PACKET_UC_REQUEST_LOGIN_MODE, // 480
PACKET_UC_UPDATE, // 481
PACKET_UC_UPDATE_LIST, // 482
//add by viva 2008-12-27 : Packet Encode Key
PACKET_CG_ENCODE_KEY, // 483
//end
PACKET_MAX
};
*/

As we all can see, it's commented, the reason is unknown.
If those packet IDs are used instead, maybe 鬼魅炼狱.exe become compatible? If so a Chinese version client would be available.
That worth a try.

dc when joining party

Receive:CGVerifyTime()
Receive:CGPartyInvite(TargetObjectID : 10291,CODE : 2)
Send:304 GCPartyJoined(MemberCount:2,(·è¿ñ),(soup),)
Send:304 GCPartyJoined(MemberCount:2,(·è¿ñ),(soup),)
▒̺▒Ʈ ▒▒Ƽ▒▒ ▒Ἲ▒Ǿ▒▒ϴ▒. : ·è¿ñ
Receive:CGSay(Color:0, Message:*bug_report Exceed PacketID:28789)
Send:305 GCPartyLeave(Expeller:Expellee:·è¿ñ)
Send:305 GCPartyLeave(Expeller:Expellee:·è¿ñ)
void Party::eventPartyCrash()
▒̺▒Ʈ ▒▒Ƽ▒▒ ▒▒▒▒▒ϴ▒. : ·è¿ñ
▒̺▒Ʈ ▒▒Ƽ▒▒ ▒▒▒▒▒ϴ▒. : soup
Receive:CGSay(Color:0, Message:*bug_report Exceed PacketID:28789)

Hello

现在还在研究这个服务端吗?

running outside of docker

how can i get these files to run outside of docker when i try to start i get this error
using ubuntu 20.04

terminate called after throwing an instance of 'terminate called after throwing an instance of 'UnsupportedErrorUnsupportedError'
'
what(): what(): std::exception
std::exception

luaError.log

image

have some errors in lua Error but idk what causing this error :/ can i have more infos any way?

感谢大神分享

感谢大神分享,docker不会玩,请问能不能弄一个不用docker的服务端版本?就传统的linux架设的那种结构,谢谢。

MYSQL DB Import ERROR

image

1231 - Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'

How can I resolve this error?

TAME Wolf

Receive:CGTameMonster(ObjectID :11930) Thats all i get nothink in inventory no working Taming pet no work...

error when I start gameserver

issue2
when I enter './bin/gameserver -f ./conf/gameserver.conf' to start gameserver.
it seems like it can't load libxerces-c-3.2.so file.
what can i do?

[PROBLEM] server only works in teenversion!

HI @tiancaiamao , I noticed that in the options even unchecking teen version, when you enter the map it is in teen version (no blood when attacking monsters, monster bodies turn ashes, heads in the shape of crystals, as shown in the attached image), I even thought it would be the client , but even using the others, it is the same way.

So I think it's something in the server files, I realized it must be related to the CHILD flag (children) but I can't analyze the files like you, can you notice something?

teenversion-flag-child

PANIC: unprotected error in call to Lua API (no calling environment)

After #92, I found that the gameserver can't startup.

The error stack looks like this:

#0  Trigger::setActions (this=0x5555663dd730, str="ActionType : TakeDonation\n\t\tAmount : 1000000") at Trigger.cpp:282
#1  0x0000555557e475f8 in TriggerManager::load (this=0x5555663dcae0, name="½º¹Ì½º") at TriggerManager.cpp:81
#2  0x0000555555e4eef2 in NPC::load (this=0x5555663dc9c0) at NPC.cpp:151
#3  0x0000555555e4f0ef in NPC::init (this=0x5555663dc9c0) at NPC.cpp:183
#4  0x0000555555e5b1ae in NPCManager::load (this=0x5555663addf0, zoneID=2003, race=255) at NPCManager.cpp:90
#5  0x0000555555cb239a in Zone::load (this=0x5555663ba120, bOutput=false) at Zone.cpp:1626
#6  0x0000555555cae13e in Zone::init (this=0x5555663ba120) at Zone.cpp:760
#7  0x0000555555f5baac in ZoneGroupManager::load (this=0x5555610715b0) at ZoneGroupManager.cpp:147
#8  0x0000555555f5b62e in ZoneGroupManager::init (this=0x5555610715b0) at ZoneGroupManager.cpp:68
#9  0x0000555555fad33d in ObjectManager::init (this=0x555561071b50) at ObjectManager.cpp:481
#10 0x0000555555e03199 in GameServer::init (this=0x555561070530) at GameServer.cpp:159
#11 0x0000555555ca79f2 in main (argc=3, argv=0x7fffffffdf58) at main.cpp:183

When handling this action GiveTestServerReward, it can't find the lua file and exit.

Breakpoint 3, Trigger::setActions (this=0x5555663ddbf0, str="ActionType : GiveTestServerReward\n  CommonFilename : ../data/lua/TestServerRewardCommon.luc\n SlayerFilename : ../data/lua/TestServerRewardSlayer.luc\n  VampireFilename : ../data/lua/TestServerRewardVam"...)
    at Trigger.cpp:279

Before upgrade the lua lib to 5.1, I guess the error is still there #85, but it's ignored and continue...

Dockerfile possibly changed from LF to CRLF

It seems that in my previous #43 pull request I may have accidentally changed Dockerfile's format from Unix to Windows (LF to CRLF).

Since friday I started having issues with the Docker environment (and possibly others are having aswell).
If that is the problem indeed, I'm reverting it back to LF and requesting a pull.
Also, I'll add a .gitattributes file to manage this behaviour and prevent such issue in the future.

BASH SCRIPTS NOT RUNNING

root@2bfd8a928f8f:/home/darkeden/vs/bin# ./start.sh
bash: ./start.sh: /bin/sh^M: bad interpreter: No such file or directory

bug when looting

Receive:CGDissectionCorpse(X:106,Y:15,ObjectID:10184)
Receive:CGDissectionCorpse(X:107,Y:16,ObjectID:10185)
Stmt::EQ real Query Error
Stmt [INSERT INTO VampireRingObject (ItemID, ObjectID, ItemType, OwnerID, Storage, StorageID , X, Y, OptionType, Durability, Grade, ItemFlag) VALUES(10, 10204, 6, '', 5, 1011, 107, 17, '�', 9000, 3, 0)]
Incorrect string value: '\xB8' for column 'OptionType' at row 1
Loading GameWorldInfoManager....

results in dc but can log back in

The real IP under docker

The client <==> server protocol looks like this:

client -> login: CGConnectSetKey, CLLogin (after input username/password and press enter)
login -> client: LCLoginOK

client -> login: CLGetWorldList
login -> client: CLGetWorldList       (display the world you can choose)

client -> login: CLSelectWorld        (first step, select the world)
logn -> client: LCServerList

client -> login: CLSelectServer       (second step, select the server)
login -> client: LCPCList

...
client -> login:  CLSelectPC             (last step, select your character)
login -> game: LGIncomingConnection
game -> login: GLIncomingConnectionOK
login -> client: LCReconnect

In the last step, the loginserver will send a LGIncomingConnection to the gameserver,
and after the loginserver receiving the reply, it sends a LCReconnect to tell the client to connect the gameserver.


When using Docker, this LCReconnect packet data is incorrect, the loginserver tell the client to connect an internal address 172.20.0.1

LCReconnect(GameServerIP:172.20.0.1,GameServerPort:9998,KEY:85603840)

Why?

The login server obtain the GameServerIP:172.20.0.1 by taking the packet sender's address.

and when the gameserver reply the GLIncomingConnectionOK packet to the loginserver,
it use UDP protocol ... the sender's address is set by the OS, inside docker, it's 172.xxx

The client can not connect to that 172.20.0.1 because it's a internal address, so the client can not find the gameserver and fail.

Which IP address do I use to connect?

I'm using Docker with WSL.

Which IP should I put in ServerInfo.inf to connect to the server?
Isn't it the IP of the WSL adapter?
Is it localhost? 127.0.0.1?

If I use WSL's adapter IP, the client abruptly closes.

wsl-adapter

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.