[RELEASE]Metin2.SG & WoM2 .pyc Decompyler

07/26/2013 23:56 .Shōgun#76
Quote:
Originally Posted by ´LaLu` View Post
aber der wom client ist doch auch sg standart der dürfte ja nicht mehr typ 4 gepackt sein oder ?
WoM doesn't use panama encryption, SG does use panama and csh.
07/27/2013 00:00 Ocelot2606#77
Quote:
Originally Posted by xP3NG3Rx View Post
The decompiling is easy, just the magic was changed in the SG files.
You have to replace to the original Python2.2 magic.(The first four characters is the magic!)
>>> import imp
>>> print(str(len(imp.get_magic())))
4

Ehm, this tool able to decompile the npclist.pyc? Because the decompile-lib is not can decompile it.
PHP Code:
# Source Generated by .MaisKolben™-Decompyler
# File: npclist.pyc

import chrmgr
chrmgr
.RegisterRaceSrcName('amber''mineral')
chrmgr.RegisterRaceSrcName('amethyst''mineral')
chrmgr.RegisterRaceSrcName('bank_02''bank')
chrmgr.RegisterRaceSrcName('bear_black''bear')
chrmgr.RegisterRaceSrcName('bear_brown''bear')
chrmgr.RegisterRaceSrcName('bear_gray''bear')
chrmgr.RegisterRaceSrcName('boar''boar')
chrmgr.RegisterRaceSrcName('boar_0''boar')
chrmgr.RegisterRaceSrcName('boar_3''boar')
chrmgr.RegisterRaceSrcName('christmas_tree_01''christmas_tree')
chrmgr.RegisterRaceSrcName('christmas_tree_01''christmas_tree')
chrmgr.RegisterRaceSrcName('christmas_tree_02''christmas_tree')
chrmgr.RegisterRaceSrcName('christmas_tree_02''christmas_tree')
chrmgr.RegisterRaceSrcName('christmas_tree_03''christmas_tree')
chrmgr.RegisterRaceSrcName('christmas_tree_03''christmas_tree')
chrmgr.RegisterRaceSrcName('chunru''mineral')
chrmgr.RegisterRaceSrcName('copper''mineral')
chrmgr.RegisterRaceSrcName('diamond''mineral')
chrmgr.RegisterRaceSrcName('dog_god''dog_god')
chrmgr.RegisterRaceSrcName('dog_god_0''dog_god')
chrmgr.RegisterRaceSrcName('dog_god_3''dog_god')
chrmgr.RegisterRaceSrcName('ebony''mineral')
chrmgr.RegisterRaceSrcName('fire_tiger''fire_tiger')
chrmgr.RegisterRaceSrcName('fire_tiger_0''fire_tiger')
chrmgr.RegisterRaceSrcName('fire_tiger_3''fire_tiger')
chrmgr.RegisterRaceSrcName('fire_tiger_blue''fire_tiger')
chrmgr.RegisterRaceSrcName('fire_tiger_darkred''fire_tiger')
chrmgr.RegisterRaceSrcName('fire_tiger_gold''fire_tiger')
chrmgr.RegisterRaceSrcName('fire_tiger_green''fire_tiger')
chrmgr.RegisterRaceSrcName('fire_tiger_pied''fire_tiger')
chrmgr.RegisterRaceSrcName('fire_tiger_white''fire_tiger')
chrmgr.RegisterRaceSrcName('flag_blue''guild_war_flag')
chrmgr.RegisterRaceSrcName('flag_blue''guild_war_flag')
chrmgr.RegisterRaceSrcName('flag_red''guild_war_flag')
chrmgr.RegisterRaceSrcName('flag_red''guild_war_flag')
chrmgr.RegisterRaceSrcName('flag_yellow''guild_war_flag')
chrmgr.RegisterRaceSrcName('flag_yellow''guild_war_flag')
chrmgr.RegisterRaceSrcName('fossil_tree''mineral')
chrmgr.RegisterRaceSrcName('gangyo_patrol_spear_01''gangyo_patrol_spear')
chrmgr.RegisterRaceSrcName('gold''mineral')
chrmgr.RegisterRaceSrcName('goods_02''goods')
chrmgr.RegisterRaceSrcName('haitai''fire_tiger_boss')
chrmgr.RegisterRaceSrcName('haitai''fire_tiger_boss')
chrmgr.RegisterRaceSrcName('horse2_master''horse2')
chrmgr.RegisterRaceSrcName('horse2_member''horse2')
chrmgr.RegisterRaceSrcName('horse2_normal''horse2')
chrmgr.RegisterRaceSrcName('horse_master''horse')
chrmgr.RegisterRaceSrcName('horse_member''horse')
chrmgr.RegisterRaceSrcName('horse_normal''horse')
chrmgr.RegisterRaceSrcName('jade''mineral')
chrmgr.RegisterRaceSrcName('jinno_patrol_spear_01''jinno_patrol_spear')
chrmgr.RegisterRaceSrcName('lion''lion')
chrmgr.RegisterRaceSrcName('lion_0''lion')
chrmgr.RegisterRaceSrcName('lion_3''lion')
chrmgr.RegisterRaceSrcName('metinstone_01''metinstone')
chrmgr.RegisterRaceSrcName('metinstone_02''metinstone')
chrmgr.RegisterRaceSrcName('metinstone_03''metinstone')
chrmgr.RegisterRaceSrcName('metinstone_04''metinstone')
chrmgr.RegisterRaceSrcName('metinstone_05''metinstone')
chrmgr.RegisterRaceSrcName('metinstone_06''metinstone')
chrmgr.RegisterRaceSrcName('metinstone_07''metinstone')
chrmgr.RegisterRaceSrcName('metinstone_08''metinstone')
chrmgr.RegisterRaceSrcName('metinstone_09''metinstone')
chrmgr.RegisterRaceSrcName('metinstone_10''metinstone_02')
chrmgr.RegisterRaceSrcName('metinstone_11''metinstone_02')
chrmgr.RegisterRaceSrcName('metinstone_12''metinstone_02')
chrmgr.RegisterRaceSrcName('metinstone_13''metinstone_02')
chrmgr.RegisterRaceSrcName('metinstone_14''metinstone_02')
chrmgr.RegisterRaceSrcName('metinstone_15''metinstone_02')
chrmgr.RegisterRaceSrcName('metinstone_egg01''metinstone_egg')
chrmgr.RegisterRaceSrcName('monkey_range''monkey')
chrmgr.RegisterRaceSrcName('monkey_range''monkey')
chrmgr.RegisterRaceSrcName('pearl''mineral')
chrmgr.RegisterRaceSrcName('pony_master''pony')
chrmgr.RegisterRaceSrcName('pony_member''pony')
chrmgr.RegisterRaceSrcName('pony_normal''pony')
chrmgr.RegisterRaceSrcName('pwahuang1_2''pwahuang1')
chrmgr.RegisterRaceSrcName('quartz''mineral')
chrmgr.RegisterRaceSrcName('red_wild_boar''wild_boar')
chrmgr.RegisterRaceSrcName('reindeer_female1''reindeer_female')
chrmgr.RegisterRaceSrcName('reindeer_female2''reindeer_female')
chrmgr.RegisterRaceSrcName('reindeer_female3''reindeer_female')
chrmgr.RegisterRaceSrcName('reindeer_male1''reindeer_male')
chrmgr.RegisterRaceSrcName('reindeer_male1_christmas1''reindeer_male')
chrmgr.RegisterRaceSrcName('reindeer_male2''reindeer_male')
chrmgr.RegisterRaceSrcName('reindeer_male3''reindeer_male')
chrmgr.RegisterRaceSrcName('reindeer_young1''reindeer_young')
chrmgr.RegisterRaceSrcName('reindeer_young1_christmas1''reindeer_young')
chrmgr.RegisterRaceSrcName('silver''mineral')
chrmgr.RegisterRaceSrcName('sinsu_patrol_spear_01''sinsu_patrol_spear')
chrmgr.RegisterRaceSrcName('spy1_01''spy1')
chrmgr.RegisterRaceSrcName('starveling''starveling')
chrmgr.RegisterRaceSrcName('starveling2''starveling')
chrmgr.RegisterRaceSrcName('starveling3''starveling')
chrmgr.RegisterRaceSrcName('starveling4''starveling')
chrmgr.RegisterRaceSrcName('starveling5''starveling')
chrmgr.RegisterRaceSrcName('sura_skeleton1''sura_skeleton')
chrmgr.RegisterRaceSrcName('sura_skeleton2''sura_skeleton')
chrmgr.RegisterRaceSrcName('sura_skeleton3''sura_skeleton')
chrmgr.RegisterRaceSrcName('sura_skeleton4''sura_skeleton')
chrmgr.RegisterRaceSrcName('sura_skeleton5''sura_skeleton')
chrmgr.RegisterRaceSrcName('tiger_big''tiger')
chrmgr.RegisterRaceSrcName('tiger_god''tiger')
chrmgr.RegisterRaceSrcName('white_gold''mineral')
chrmgr.RegisterRaceSrcName('wolf_blue''wolf')
chrmgr.RegisterRaceSrcName('wolf_gray''wolf')
chrmgr.RegisterRaceName(101'stray_dog')
chrmgr.RegisterRaceName(102'wolf')
chrmgr.RegisterRaceName(103'wolf')
chrmgr.RegisterRaceName(104'wolf_blue')
chrmgr.RegisterRaceName(105'wolf_blue')
chrmgr.RegisterRaceName(106'wolf_gray')
chrmgr.RegisterRaceName(107'wolf_gray')
chrmgr.RegisterRaceName(108'wild_boar')
chrmgr.RegisterRaceName(109'red_wild_boar')
chrmgr.RegisterRaceName(110'bear')
chrmgr.RegisterRaceName(111'bear_gray')
chrmgr.RegisterRaceName(112'bear_black')
chrmgr.RegisterRaceName(113'bear_brown')
chrmgr.RegisterRaceName(114'tiger')
chrmgr.RegisterRaceName(115'tiger_big')
chrmgr.RegisterRaceName(131'wolf')
chrmgr.RegisterRaceName(132'wolf')
chrmgr.RegisterRaceName(133'wolf_blue')
chrmgr.RegisterRaceName(134'wolf_blue')
chrmgr.RegisterRaceName(135'wolf_gray')
chrmgr.RegisterRaceName(136'wolf_gray')
chrmgr.RegisterRaceName(137'wild_boar')
chrmgr.RegisterRaceName(138'red_wild_boar')
chrmgr.RegisterRaceName(139'bear')
chrmgr.RegisterRaceName(140'bear_gray')
chrmgr.RegisterRaceName(141'bear_black')
chrmgr.RegisterRaceName(142'bear_brown')
chrmgr.RegisterRaceName(143'tiger')
chrmgr.RegisterRaceName(144'tiger_big')
chrmgr.RegisterRaceName(151'wolf_blue')
chrmgr.RegisterRaceName(152'wolf_gray')
chrmgr.RegisterRaceName(153'red_wild_boar')
chrmgr.RegisterRaceName(154'bear_brown')
chrmgr.RegisterRaceName(155'tiger_big')
chrmgr.RegisterRaceName(171'stray_dog')
chrmgr.RegisterRaceName(172'wolf')
chrmgr.RegisterRaceName(173'wolf')
chrmgr.RegisterRaceName(174'wolf_blue')
chrmgr.RegisterRaceName(175'wolf_blue')
chrmgr.RegisterRaceName(176'wolf_gray')
chrmgr.RegisterRaceName(177'wolf_gray')
chrmgr.RegisterRaceName(178'wild_boar')
chrmgr.RegisterRaceName(179'red_wild_boar')
chrmgr.RegisterRaceName(180'bear')
chrmgr.RegisterRaceName(181'bear_gray')
chrmgr.RegisterRaceName(182'bear_black')
chrmgr.RegisterRaceName(183'bear_brown')
chrmgr.RegisterRaceName(184'tiger')
chrmgr.RegisterRaceName(185'tiger_big')
chrmgr.RegisterRaceName(191'mountain_dog_god')
chrmgr.RegisterRaceName(192'wild_boar_god')
chrmgr.RegisterRaceName(193'bear')
chrmgr.RegisterRaceName(194'tiger_god')
chrmgr.RegisterRaceName(301'bksoldier')
chrmgr.RegisterRaceName(302'bkarcher')
chrmgr.RegisterRaceName(303'bkknight')
chrmgr.RegisterRaceName(304'bkknight')
chrmgr.RegisterRaceName(331'bksoldier')
chrmgr.RegisterRaceName(332'bkarcher')
chrmgr.RegisterRaceName(333'bkknight')
chrmgr.RegisterRaceName(334'bkknight')
chrmgr.RegisterRaceName(351'bksoldier')
chrmgr.RegisterRaceName(352'bkarcher')
chrmgr.RegisterRaceName(353'bkknight')
chrmgr.RegisterRaceName(354'bkknight')
chrmgr.RegisterRaceName(391'bksecond')
chrmgr.RegisterRaceName(392'bkthird')
chrmgr.RegisterRaceName(393'bkfourth')
chrmgr.RegisterRaceName(394'bkboss')
chrmgr.RegisterRaceName(395'bksecond')
chrmgr.RegisterRaceName(396'bkthird')
chrmgr.RegisterRaceName(397'bkfourth')
chrmgr.RegisterRaceName(398'bkboss')
chrmgr.RegisterRaceName(401'thief1')
chrmgr.RegisterRaceName(402'thief2')
chrmgr.RegisterRaceName(403'thief3')
chrmgr.RegisterRaceName(404'thiefboss1')
chrmgr.RegisterRaceName(405'thiefboss2')
chrmgr.RegisterRaceName(406'thiefboss3')
chrmgr.RegisterRaceName(431'thief1')
chrmgr.RegisterRaceName(432'thief2')
chrmgr.RegisterRaceName(433'thief3')
chrmgr.RegisterRaceName(434'thiefboss1')
chrmgr.RegisterRaceName(435'thiefboss2')
chrmgr.RegisterRaceName(436'thiefboss3')
chrmgr.RegisterRaceName(451'thief1')
chrmgr.RegisterRaceName(452'thief2')
chrmgr.RegisterRaceName(453'thief3')
chrmgr.RegisterRaceName(454'thiefboss1')
chrmgr.RegisterRaceName(455'thiefboss2')
chrmgr.RegisterRaceName(456'thiefboss3')
chrmgr.RegisterRaceName(491'maenghwan')
chrmgr.RegisterRaceName(492'bou')
chrmgr.RegisterRaceName(493'gupae')
chrmgr.RegisterRaceName(494'chuhen')
chrmgr.RegisterRaceName(501'barbarian_infantry')
chrmgr.RegisterRaceName(502'barbarian_soldier')
chrmgr.RegisterRaceName(503'barbarian_bow')
chrmgr.RegisterRaceName(504'barbarian_knight')
chrmgr.RegisterRaceName(531'barbarian_infantry')
chrmgr.RegisterRaceName(532'barbarian_soldier')
chrmgr.RegisterRaceName(533'barbarian_bow')
chrmgr.RegisterRaceName(534'barbarian_knight')
chrmgr.RegisterRaceName(551'barbarian_infantry')
chrmgr.RegisterRaceName(552'barbarian_soldier')
chrmgr.RegisterRaceName(553'barbarian_bow')
chrmgr.RegisterRaceName(554'barbarian_knight')
chrmgr.RegisterRaceName(591'barbarian_boss')
chrmgr.RegisterRaceName(595'barbarian_bow')
chrmgr.RegisterRaceName(601'orc_soldier')
chrmgr.RegisterRaceName(602'orc_scouter')
chrmgr.RegisterRaceName(603'orc_knight')
chrmgr.RegisterRaceName(604'orc_magician')
chrmgr.RegisterRaceName(631'orc_soldier')
chrmgr.RegisterRaceName(632'orc_scouter')
chrmgr.RegisterRaceName(633'orc_knight')
chrmgr.RegisterRaceName(634'orc_magician')
chrmgr.RegisterRaceName(635'orc_general')
chrmgr.RegisterRaceName(636'orc_black')
chrmgr.RegisterRaceName(637'orc_bigblack')
chrmgr.RegisterRaceName(651'orc_soldier')
chrmgr.RegisterRaceName(652'orc_scouter')
chrmgr.RegisterRaceName(653'orc_knight')
chrmgr.RegisterRaceName(654'orc_magician')
chrmgr.RegisterRaceName(655'orc_general')
chrmgr.RegisterRaceName(656'orc_black')
chrmgr.RegisterRaceName(657'orc_bigblack')
chrmgr.RegisterRaceName(691'orc_lord')
chrmgr.RegisterRaceName(692'orc_lord')
chrmgr.RegisterRaceName(693'#season1/monster/orc_lord_e/')
chrmgr.RegisterRaceName(701'milgyo_religionist')
chrmgr.RegisterRaceName(702'milgyo_nahan1')
chrmgr.RegisterRaceName(703'milgyo_nahan2')
chrmgr.RegisterRaceName(704'milgyo_nahan_general')
chrmgr.RegisterRaceName(705'milgyo_executor')
chrmgr.RegisterRaceName(706'milgyo_monster1')
chrmgr.RegisterRaceName(707'milgyo_monster2')
chrmgr.RegisterRaceName(731'milgyo_religionist')
chrmgr.RegisterRaceName(732'milgyo_nahan1')
chrmgr.RegisterRaceName(733'milgyo_nahan2')
chrmgr.RegisterRaceName(734'milgyo_nahan_general')
chrmgr.RegisterRaceName(735'milgyo_executor')
chrmgr.RegisterRaceName(736'milgyo_monster1')
chrmgr.RegisterRaceName(737'milgyo_monster2')
chrmgr.RegisterRaceName(751'milgyo_religionist')
chrmgr.RegisterRaceName(752'milgyo_nahan1')
chrmgr.RegisterRaceName(753'milgyo_nahan2')
chrmgr.RegisterRaceName(754'milgyo_nahan_general')
chrmgr.RegisterRaceName(755'milgyo_executor')
chrmgr.RegisterRaceName(756'milgyo_monster1')
chrmgr.RegisterRaceName(757'milgyo_monster2')
chrmgr.RegisterRaceName(771'milgyo_religionist')
chrmgr.RegisterRaceName(772'milgyo_nahan1')
chrmgr.RegisterRaceName(773'milgyo_nahan2')
chrmgr.RegisterRaceName(774'milgyo_nahan_general')
chrmgr.RegisterRaceName(775'milgyo_executor')
chrmgr.RegisterRaceName(776'milgyo_monster1')
chrmgr.RegisterRaceName(777'milgyo_monster2')
chrmgr.RegisterRaceName(791'milgyo_founder')
chrmgr.RegisterRaceName(792'milgyo_founder')
chrmgr.RegisterRaceName(793'milgyo_founder')
chrmgr.RegisterRaceName(794'milgyo_founder')
chrmgr.RegisterRaceName(795'#season1/monster/milgyo_founder_e/')
chrmgr.RegisterRaceName(901'misterious_diseased_kid')
chrmgr.RegisterRaceName(902'misterious_diseased_dog')
chrmgr.RegisterRaceName(903'misterious_diseased_infector')
chrmgr.RegisterRaceName(904'misterious_diseased_sword')
chrmgr.RegisterRaceName(905'misterious_diseased_spear')
chrmgr.RegisterRaceName(906'misterious_diseased_bow')
chrmgr.RegisterRaceName(907'misterious_diseased_boss')
chrmgr.RegisterRaceName(931'misterious_diseased_kid')
chrmgr.RegisterRaceName(932'misterious_diseased_dog')
chrmgr.RegisterRaceName(933'misterious_diseased_infector')
chrmgr.RegisterRaceName(934'misterious_diseased_sword')
chrmgr.RegisterRaceName(935'misterious_diseased_spear')
chrmgr.RegisterRaceName(936'misterious_diseased_bow')
chrmgr.RegisterRaceName(937'misterious_diseased_boss')
chrmgr.RegisterRaceName(991'misterious_diseased_egg')
chrmgr.RegisterRaceName(992'misterious_diseased_host')
chrmgr.RegisterRaceName(993'misterious_diseased_bosshost')
chrmgr.RegisterRaceName(1001'skeleton_soldier_scythe')
chrmgr.RegisterRaceName(1002'skeleton_soldier_bow')
chrmgr.RegisterRaceName(1003'skeleton_soldier_spear')
chrmgr.RegisterRaceName(1004'skeleton_magician')
chrmgr.RegisterRaceName(1031'skeleton_soldier_scythe')
chrmgr.RegisterRaceName(1032'skeleton_soldier_bow')
chrmgr.RegisterRaceName(1033'skeleton_soldier_spear')
chrmgr.RegisterRaceName(1034'skeleton_magician')
chrmgr.RegisterRaceName(1035'spite_ghost')
chrmgr.RegisterRaceName(1036'chaos_ghost')
chrmgr.RegisterRaceName(1037'skeleton_general')
chrmgr.RegisterRaceName(1038'skeleton_bigboss')
chrmgr.RegisterRaceName(1039'skeleton_wizard')
chrmgr.RegisterRaceName(1040'immotal_ghost')
chrmgr.RegisterRaceName(1041'recycle_monster')
chrmgr.RegisterRaceName(1061'skeleton_soldier_scythe')
chrmgr.RegisterRaceName(1062'skeleton_soldier_bow')
chrmgr.RegisterRaceName(1063'skeleton_soldier_spear')
chrmgr.RegisterRaceName(1064'skeleton_magician')
chrmgr.RegisterRaceName(1065'spite_ghost')
chrmgr.RegisterRaceName(1066'chaos_ghost')
chrmgr.RegisterRaceName(1067'skeleton_general')
chrmgr.RegisterRaceName(1068'skeleton_bigboss')
chrmgr.RegisterRaceName(1069'skeleton_wizard')
chrmgr.RegisterRaceName(1070'immotal_ghost')
chrmgr.RegisterRaceName(1071'recycle_monster')
chrmgr.RegisterRaceName(1091'skeleton_king')
chrmgr.RegisterRaceName(1092'skeleton_king')
chrmgr.RegisterRaceName(1093'skeleton_god')
chrmgr.RegisterRaceName(1094'#season1/monster/skeleton_king_e/')
chrmgr.RegisterRaceName(1095'#season1/monster/skeleton_god_e/')
chrmgr.RegisterRaceName(1101'ice_snow_monster')
chrmgr.RegisterRaceName(1102'ice_snow_whale')
chrmgr.RegisterRaceName(1103'ice_snow_insect')
chrmgr.RegisterRaceName(1104'ice_snow_dog')
chrmgr.RegisterRaceName(1105'ice_snow_man')
chrmgr.RegisterRaceName(1106'ice_snow_giant_man')
chrmgr.RegisterRaceName(1107'ice_snow_golem')
chrmgr.RegisterRaceName(1131'ice_snow_monster')
chrmgr.RegisterRaceName(1132'ice_snow_whale')
chrmgr.RegisterRaceName(1133'ice_snow_insect')
chrmgr.RegisterRaceName(1134'ice_snow_dog')
chrmgr.RegisterRaceName(1135'ice_snow_man')
chrmgr.RegisterRaceName(1136'ice_snow_giant_man')
chrmgr.RegisterRaceName(1137'ice_snow_golem')
chrmgr.RegisterRaceName(1151'ice_snow_monster')
chrmgr.RegisterRaceName(1152'ice_snow_whale')
chrmgr.RegisterRaceName(1153'ice_snow_insect')
chrmgr.RegisterRaceName(1154'ice_snow_dog')
chrmgr.RegisterRaceName(1155'ice_snow_man')
chrmgr.RegisterRaceName(1156'ice_snow_giant_man')
chrmgr.RegisterRaceName(1157'ice_snow_golem')
chrmgr.RegisterRaceName(1171'ice_snow_monster')
chrmgr.RegisterRaceName(1172'ice_snow_whale')
chrmgr.RegisterRaceName(1173'ice_snow_insect')
chrmgr.RegisterRaceName(1174'ice_snow_dog')
chrmgr.RegisterRaceName(1175'ice_snow_man')
chrmgr.RegisterRaceName(1176'ice_snow_giant_man')
chrmgr.RegisterRaceName(1177'ice_snow_golem')
chrmgr.RegisterRaceName(1191'ice_snow_witch')
chrmgr.RegisterRaceName(1192'ice_snow_witch')
chrmgr.RegisterRaceName(1301'greenfrog_soldier')
chrmgr.RegisterRaceName(1302'greenfrog_general')
chrmgr.RegisterRaceName(1303'goblin_leafhead')
chrmgr.RegisterRaceName(1304'yellow_tigerman')
chrmgr.RegisterRaceName(1305'sugu_general')
chrmgr.RegisterRaceName(1306'yellow_tigerman')
chrmgr.RegisterRaceName(1307'#season1/monster/yellow_tigerman_e/')
chrmgr.RegisterRaceName(1331'greenfrog_soldier')
chrmgr.RegisterRaceName(1332'greenfrog_general')
chrmgr.RegisterRaceName(1333'goblin_leafhead')
chrmgr.RegisterRaceName(1334'yellow_tigerman')
chrmgr.RegisterRaceName(1335'sugu_general')
chrmgr.RegisterRaceName(1401'mutant_1')
chrmgr.RegisterRaceName(1402'mutant_2')
chrmgr.RegisterRaceName(1403'mutant_3')
chrmgr.RegisterRaceName(1501'golem_1')
chrmgr.RegisterRaceName(1502'golem_2')
chrmgr.RegisterRaceName(1503'golem_3')
chrmgr.RegisterRaceName(1601'nersluck_1')
chrmgr.RegisterRaceName(1602'nersluck_2')
chrmgr.RegisterRaceName(1603'nersluck_3')
chrmgr.RegisterRaceName(1901'fox_ninetail')
chrmgr.RegisterRaceName(1902'fox_ninetail')
chrmgr.RegisterRaceName(1903'#season1/monster/fox_ninetail_e/')
chrmgr.RegisterRaceName(2001'spider_young')
chrmgr.RegisterRaceName(2002'spider_poison')
chrmgr.RegisterRaceName(2003'spider_redpoison')
chrmgr.RegisterRaceName(2004'spider_nipper')
chrmgr.RegisterRaceName(2005'spider_soldier')
chrmgr.RegisterRaceName(2031'spider_young')
chrmgr.RegisterRaceName(2032'spider_poison')
chrmgr.RegisterRaceName(2033'spider_redpoison')
chrmgr.RegisterRaceName(2034'spider_nipper')
chrmgr.RegisterRaceName(2035'spider_soldier')
chrmgr.RegisterRaceName(2036'spider_soldier')
chrmgr.RegisterRaceName(2051'spider_young')
chrmgr.RegisterRaceName(2052'spider_poison')
chrmgr.RegisterRaceName(2053'spider_redpoison')
chrmgr.RegisterRaceName(2054'spider_nipper')
chrmgr.RegisterRaceName(2055'spider_soldier')
chrmgr.RegisterRaceName(2061'spider_young')
chrmgr.RegisterRaceName(2062'spider_poison')
chrmgr.RegisterRaceName(2063'spider_redpoison')
chrmgr.RegisterRaceName(2064'spider_nipper')
chrmgr.RegisterRaceName(2065'spider_soldier')
chrmgr.RegisterRaceName(2071'spider_young')
chrmgr.RegisterRaceName(2072'spider_poison')
chrmgr.RegisterRaceName(2073'spider_redpoison')
chrmgr.RegisterRaceName(2074'spider_nipper')
chrmgr.RegisterRaceName(2075'spider_soldier')
chrmgr.RegisterRaceName(2076'spider_soldier')
chrmgr.RegisterRaceName(2091'spider_queen')
chrmgr.RegisterRaceName(2092'spider_king')
chrmgr.RegisterRaceName(2093'#season1/monster/spider_queen_e/')
chrmgr.RegisterRaceName(2094'#season1/monster/spider_queen_e/')
chrmgr.RegisterRaceName(2095'spider_spawn')
chrmgr.RegisterRaceName(2101'fennec_fox')
chrmgr.RegisterRaceName(2102'evil_eye')
chrmgr.RegisterRaceName(2103'giant_scorpion')
chrmgr.RegisterRaceName(2104'scorpionman_sword')
chrmgr.RegisterRaceName(2105'scorpionman_bow')
chrmgr.RegisterRaceName(2106'snakeman_sword')
chrmgr.RegisterRaceName(2107'snakeman_bow')
chrmgr.RegisterRaceName(2108'outlaw')
chrmgr.RegisterRaceName(2131'scorpionman_sword')
chrmgr.RegisterRaceName(2132'scorpionman_bow')
chrmgr.RegisterRaceName(2133'snakeman_sword')
chrmgr.RegisterRaceName(2134'snakeman_bow')
chrmgr.RegisterRaceName(2135'outlaw')
chrmgr.RegisterRaceName(2151'fennec_fox')
chrmgr.RegisterRaceName(2152'evil_eye')
chrmgr.RegisterRaceName(2153'giant_scorpion')
chrmgr.RegisterRaceName(2154'scorpionman_sword')
chrmgr.RegisterRaceName(2155'scorpionman_bow')
chrmgr.RegisterRaceName(2156'snakeman_sword')
chrmgr.RegisterRaceName(2157'snakeman_bow')
chrmgr.RegisterRaceName(2158'outlaw')
chrmgr.RegisterRaceName(2191'giant_desert_turtle')
chrmgr.RegisterRaceName(2192'#season1/monster/giant_desert_turtle_e/')
chrmgr.RegisterRaceName(2201'fire_tiger')
chrmgr.RegisterRaceName(2202'fire_ghost')
chrmgr.RegisterRaceName(2203'fire_tiger_boss')
chrmgr.RegisterRaceName(2204'fire_man')
chrmgr.RegisterRaceName(2205'fire_knight')
chrmgr.RegisterRaceName(2206'fire_king')
chrmgr.RegisterRaceName(2207'fire_king')
chrmgr.RegisterRaceName(2221'fire_tiger')
chrmgr.RegisterRaceName(2222'fire_ghost')
chrmgr.RegisterRaceName(2223'fire_tiger_boss')
chrmgr.RegisterRaceName(2224'fire_man')
chrmgr.RegisterRaceName(2225'fire_knight')
chrmgr.RegisterRaceName(2226'fire_ghost')
chrmgr.RegisterRaceName(2227'fire_ghost')
chrmgr.RegisterRaceName(2231'fire_tiger')
chrmgr.RegisterRaceName(2232'fire_ghost')
chrmgr.RegisterRaceName(2233'fire_tiger_boss')
chrmgr.RegisterRaceName(2234'fire_man')
chrmgr.RegisterRaceName(2235'fire_knight')
chrmgr.RegisterRaceName(2291'fire_dragon')
chrmgr.RegisterRaceName(2292'red_dragon')
chrmgr.RegisterRaceName(2293'red_dragon2')
chrmgr.RegisterRaceName(2301'ent_trent')
chrmgr.RegisterRaceName(2302'ent_guru')
chrmgr.RegisterRaceName(2303'ent_hu')
chrmgr.RegisterRaceName(2304'ent_red')
chrmgr.RegisterRaceName(2305'ent_black')
chrmgr.RegisterRaceName(2306'ent_huge')
chrmgr.RegisterRaceName(2307'ent_elder')
chrmgr.RegisterRaceName(2311'ent_trent')
chrmgr.RegisterRaceName(2312'ent_guru')
chrmgr.RegisterRaceName(2313'ent_hu')
chrmgr.RegisterRaceName(2314'ent_red')
chrmgr.RegisterRaceName(2315'ent_black')
chrmgr.RegisterRaceName(2401'ch_footman')
chrmgr.RegisterRaceName(2402'ch_bowman')
chrmgr.RegisterRaceName(2403'ch_magician')
chrmgr.RegisterRaceName(2404'ch_officer')
chrmgr.RegisterRaceName(2411'ch_footman')
chrmgr.RegisterRaceName(2412'ch_bowman')
chrmgr.RegisterRaceName(2413'ch_magician')
chrmgr.RegisterRaceName(2414'ch_officer')
chrmgr.RegisterRaceName(2431'ch_footman')
chrmgr.RegisterRaceName(2432'ch_bowman')
chrmgr.RegisterRaceName(2433'ch_magician')
chrmgr.RegisterRaceName(2434'ch_officer')
chrmgr.RegisterRaceName(2451'ch_footman')
chrmgr.RegisterRaceName(2452'ch_bowman')
chrmgr.RegisterRaceName(2453'ch_magician')
chrmgr.RegisterRaceName(2454'ch_officer')
chrmgr.RegisterRaceName(2481'boar_young')
chrmgr.RegisterRaceName(2482'dog_god_young')
chrmgr.RegisterRaceName(2483'fire_tiger_young')
chrmgr.RegisterRaceName(2484'lion_young')
chrmgr.RegisterRaceName(2491'ch_general')
chrmgr.RegisterRaceName(2492'ch_general')
chrmgr.RegisterRaceName(2493'blue_dragon')
chrmgr.RegisterRaceName(2494'ch_general')
chrmgr.RegisterRaceName(2495'ch_general')
chrmgr.RegisterRaceName(2501'zombie_diseased_kid')
chrmgr.RegisterRaceName(2502'zombie_diseased_dog')
chrmgr.RegisterRaceName(2503'zombie_diseased_infector')
chrmgr.RegisterRaceName(2504'zombie_diseased_sword')
chrmgr.RegisterRaceName(2505'zombie_diseased_spear')
chrmgr.RegisterRaceName(2506'zombie_diseased_bow')
chrmgr.RegisterRaceName(2507'zombie_diseased_boss')
chrmgr.RegisterRaceName(2508'zombie_soldier_scythe')
chrmgr.RegisterRaceName(2509'zombie_soldier_bow')
chrmgr.RegisterRaceName(2510'zombie_soldier_spear')
chrmgr.RegisterRaceName(2511'zombie_magician')
chrmgr.RegisterRaceName(2512'zombie_bigboss')
chrmgr.RegisterRaceName(2513'zombie_ghost')
chrmgr.RegisterRaceName(2514'zombie_general')
chrmgr.RegisterRaceName(2541'zombie_soldier_scythe')
chrmgr.RegisterRaceName(2542'zombie_soldier_bow')
chrmgr.RegisterRaceName(2543'zombie_soldier_spear')
chrmgr.RegisterRaceName(2544'zombie_magician')
chrmgr.RegisterRaceName(2545'zombie_bigboss')
chrmgr.RegisterRaceName(2546'zombie_ghost')
chrmgr.RegisterRaceName(2547'zombie_general')
chrmgr.RegisterRaceName(2591'zombie_king')
chrmgr.RegisterRaceName(2592'zombie_king')
chrmgr.RegisterRaceName(2593'zombie_king')
chrmgr.RegisterRaceName(2594'zombie_king')
chrmgr.RegisterRaceName(2595'zombie_king')
chrmgr.RegisterRaceName(2596'zombie_king')
chrmgr.RegisterRaceName(2597'zombie_god')
chrmgr.RegisterRaceName(2598'zombie_bigboss2')
chrmgr.RegisterRaceName(2600'gnoll_helhound')
chrmgr.RegisterRaceName(2601'gnoll_warrior')
chrmgr.RegisterRaceName(2602'gnoll_mage')
chrmgr.RegisterRaceName(2603'gnoll_commander')
chrmgr.RegisterRaceName(2620'gnoll_minotaur')
chrmgr.RegisterRaceName(2630'troll_warrior')
chrmgr.RegisterRaceName(2631'troll_archer')
chrmgr.RegisterRaceName(2632'troll_mage')
chrmgr.RegisterRaceName(2633'troll_commander')
chrmgr.RegisterRaceName(2650'troll_argus')
chrmgr.RegisterRaceName(2660'naga_soldier')
chrmgr.RegisterRaceName(2661'naga_archer')
chrmgr.RegisterRaceName(2662'naga_mage')
chrmgr.RegisterRaceName(2663'naga_warrior')
chrmgr.RegisterRaceName(2680'naga_commander')
chrmgr.RegisterRaceName(5001'japanese_pirate')
chrmgr.RegisterRaceName(5002'haitai')
chrmgr.RegisterRaceName(5003'monkey')
chrmgr.RegisterRaceName(5004'japanese_pirate')
chrmgr.RegisterRaceName(5005'haitai')
chrmgr.RegisterRaceName(5101'monkey')
chrmgr.RegisterRaceName(5102'monkey_range')
chrmgr.RegisterRaceName(5103'monkey')
chrmgr.RegisterRaceName(5104'monkey')
chrmgr.RegisterRaceName(5111'monkey')
chrmgr.RegisterRaceName(5112'monkey_range')
chrmgr.RegisterRaceName(5113'monkey')
chrmgr.RegisterRaceName(5114'monkey')
chrmgr.RegisterRaceName(5115'stone_monkey')
chrmgr.RegisterRaceName(5116'stone_monkey')
chrmgr.RegisterRaceName(5121'monkey')
chrmgr.RegisterRaceName(5122'monkey_range')
chrmgr.RegisterRaceName(5123'monkey')
chrmgr.RegisterRaceName(5124'monkey')
chrmgr.RegisterRaceName(5125'stone_monkey')
chrmgr.RegisterRaceName(5126'gold_monkey')
chrmgr.RegisterRaceName(5127'gold_monkey')
chrmgr.RegisterRaceName(5131'monkey')
chrmgr.RegisterRaceName(5132'monkey_range')
chrmgr.RegisterRaceName(5133'monkey')
chrmgr.RegisterRaceName(5134'monkey')
chrmgr.RegisterRaceName(5141'monkey')
chrmgr.RegisterRaceName(5142'monkey_range')
chrmgr.RegisterRaceName(5143'monkey')
chrmgr.RegisterRaceName(5144'monkey')
chrmgr.RegisterRaceName(5145'stone_monkey')
chrmgr.RegisterRaceName(5146'stone_monkey')
chrmgr.RegisterRaceName(5151'monkey')
chrmgr.RegisterRaceName(5152'monkey_range')
chrmgr.RegisterRaceName(5153'monkey')
chrmgr.RegisterRaceName(5154'monkey')
chrmgr.RegisterRaceName(5155'stone_monkey')
chrmgr.RegisterRaceName(5156'gold_monkey')
chrmgr.RegisterRaceName(5157'gold_monkey')
chrmgr.RegisterRaceName(5161'stone_monkey')
chrmgr.RegisterRaceName(5162'gold_monkey')
chrmgr.RegisterRaceName(5163'god_monkey')
chrmgr.RegisterRaceName(7001'monkey')
chrmgr.RegisterRaceName(7002'monkey_range')
chrmgr.RegisterRaceName(7003'monkey')
chrmgr.RegisterRaceName(7004'monkey')
chrmgr.RegisterRaceName(7005'stone_monkey')
chrmgr.RegisterRaceName(7006'gold_monkey')
chrmgr.RegisterRaceName(7007'gold_monkey')
chrmgr.RegisterRaceName(7008'nersluck_1')
chrmgr.RegisterRaceName(7009'nersluck_2')
chrmgr.RegisterRaceName(7010'nersluck_3')
chrmgr.RegisterRaceName(7012'evil_eye')
chrmgr.RegisterRaceName(7013'giant_scorpion')
chrmgr.RegisterRaceName(7014'scorpionman_sword')
chrmgr.RegisterRaceName(7015'scorpionman_bow')
chrmgr.RegisterRaceName(7016'snakeman_sword')
chrmgr.RegisterRaceName(7017'snakeman_bow')
chrmgr.RegisterRaceName(7018'outlaw')
chrmgr.RegisterRaceName(7019'fire_tiger')
chrmgr.RegisterRaceName(7020'fire_ghost')
chrmgr.RegisterRaceName(7021'fire_tiger_boss')
chrmgr.RegisterRaceName(7022'fire_man')
chrmgr.RegisterRaceName(7023'fire_knight')
chrmgr.RegisterRaceName(7024'ent_trent')
chrmgr.RegisterRaceName(7025'ent_guru')
chrmgr.RegisterRaceName(7026'ent_hu')
chrmgr.RegisterRaceName(7027'ent_red')
chrmgr.RegisterRaceName(7028'ent_black')
chrmgr.RegisterRaceName(8001'metinstone_01')
chrmgr.RegisterRaceName(8002'metinstone_02')
chrmgr.RegisterRaceName(8003'metinstone_03')
chrmgr.RegisterRaceName(8004'metinstone_04')
chrmgr.RegisterRaceName(8005'metinstone_05')
chrmgr.RegisterRaceName(8006'metinstone_06')
chrmgr.RegisterRaceName(8007'metinstone_07')
chrmgr.RegisterRaceName(8008'metinstone_08')
chrmgr.RegisterRaceName(8009'metinstone_09')
chrmgr.RegisterRaceName(8010'metinstone_04')
chrmgr.RegisterRaceName(8011'metinstone_05')
chrmgr.RegisterRaceName(8012'metinstone_06')
chrmgr.RegisterRaceName(8013'metinstone_07')
chrmgr.RegisterRaceName(8014'metinstone_08')
chrmgr.RegisterRaceName(8015'metinstone_04')
chrmgr.RegisterRaceName(8016'metinstone_05')
chrmgr.RegisterRaceName(8017'metinstone_06')
chrmgr.RegisterRaceName(8018'metinstone_07')
chrmgr.RegisterRaceName(8019'metinstone_08')
chrmgr.RegisterRaceName(8020'metinstone_06')
chrmgr.RegisterRaceName(8021'metinstone_07')
chrmgr.RegisterRaceName(8022'metinstone_08')
chrmgr.RegisterRaceName(8023'metinstone_09')
chrmgr.RegisterRaceName(8024'metinstone_03')
chrmgr.RegisterRaceName(8025'metinstone_04')
chrmgr.RegisterRaceName(8026'metinstone_05')
chrmgr.RegisterRaceName(8027'metinstone_06')
chrmgr.RegisterRaceName(8028'metinstone_06')
chrmgr.RegisterRaceName(8029'metinstone_06')
chrmgr.RegisterRaceName(8030'metinstone_06')
chrmgr.RegisterRaceName(8031'metinstone_09')
chrmgr.RegisterRaceName(8032'metinstone_01')
chrmgr.RegisterRaceName(8033'metinstone_06')
chrmgr.RegisterRaceName(8034'metinstone_02')
chrmgr.RegisterRaceName(8035'metinstone_10')
chrmgr.RegisterRaceName(8036'metinstone_11')
chrmgr.RegisterRaceName(8037'metinstone_12')
chrmgr.RegisterRaceName(8038'metinstone_13')
chrmgr.RegisterRaceName(8039'metinstone_14')
chrmgr.RegisterRaceName(8040'metinstone_15')
chrmgr.RegisterRaceName(8041'metinstone_14')
chrmgr.RegisterRaceName(8042'metinstone_egg')
chrmgr.RegisterRaceName(8043'metinstone_egg')
chrmgr.RegisterRaceName(8044'metinstone_egg')
chrmgr.RegisterRaceName(8045'metinstone_egg')
chrmgr.RegisterRaceName(8046'metinstone_egg')
chrmgr.RegisterRaceName(8047'metinstone_egg')
chrmgr.RegisterRaceName(8051'metinstone_10')
chrmgr.RegisterRaceName(8052'metinstone_11')
chrmgr.RegisterRaceName(8053'metinstone_12')
chrmgr.RegisterRaceName(8054'metinstone_13')
chrmgr.RegisterRaceName(8055'metinstone_14')
chrmgr.RegisterRaceName(8056'metinstone_15')
chrmgr.RegisterRaceName(8101'metinstone_01')
chrmgr.RegisterRaceName(8102'metinstone_02')
chrmgr.RegisterRaceName(8103'metinstone_03')
chrmgr.RegisterRaceName(8104'metinstone_04')
chrmgr.RegisterRaceName(8105'metinstone_05')
chrmgr.RegisterRaceName(8106'metinstone_06')
chrmgr.RegisterRaceName(8107'metinstone_07')
chrmgr.RegisterRaceName(8108'metinstone_08')
chrmgr.RegisterRaceName(8109'metinstone_09')
chrmgr.RegisterRaceName(8110'metinstone_09')
chrmgr.RegisterRaceName(8111'metinstone_09')
chrmgr.RegisterRaceName(8112'metinstone_09')
chrmgr.RegisterRaceName(8501'stray_dog')
chrmgr.RegisterRaceName(8502'wild_boar')
chrmgr.RegisterRaceName(8503'bear')
chrmgr.RegisterRaceName(8504'tiger_big')
chrmgr.RegisterRaceName(8505'orc_bigblack')
chrmgr.RegisterRaceName(8506'greenfrog_general')
chrmgr.RegisterRaceName(8507'outlaw')
chrmgr.RegisterRaceName(8508'milgyo_monster1')
chrmgr.RegisterRaceName(8509'milgyo_monster2')
chrmgr.RegisterRaceName(8510'fire_knight')
chrmgr.RegisterRaceName(8511'ice_snow_golem')
chrmgr.RegisterRaceName(8600'#season1/monster/orc_lord_e/')
chrmgr.RegisterRaceName(8601'#season1/monster/orc_lord_e/')
chrmgr.RegisterRaceName(8602'#season1/monster/milgyo_founder_e/')
chrmgr.RegisterRaceName(8603'#season1/monster/milgyo_founder_e/')
chrmgr.RegisterRaceName(8604'#season1/monster/skeleton_king_e/')
chrmgr.RegisterRaceName(8605'#season1/monster/skeleton_king_e/')
chrmgr.RegisterRaceName(8606'#season1/monster/skeleton_god_e/')
chrmgr.RegisterRaceName(8607'#season1/monster/skeleton_god_e/')
chrmgr.RegisterRaceName(8608'#season1/monster/fox_ninetail_e/')
chrmgr.RegisterRaceName(8609'#season1/monster/fox_ninetail_e/')
chrmgr.RegisterRaceName(8610'#season1/monster/yellow_tigerman_e/')
chrmgr.RegisterRaceName(8611'#season1/monster/yellow_tigerman_e/')
chrmgr.RegisterRaceName(8612'#season1/monster/spider_queen_e/')
chrmgr.RegisterRaceName(8613'#season1/monster/spider_queen_e/')
chrmgr.RegisterRaceName(8614'#season1/monster/giant_desert_turtle_e/')
chrmgr.RegisterRaceName(8615'#season1/monster/giant_desert_turtle_e/')
chrmgr.RegisterRaceName(8616'#season2/npc/ent_elder/')
chrmgr.RegisterRaceName(9001'arms')
chrmgr.RegisterRaceName(9002'defence')
chrmgr.RegisterRaceName(9003'goods')
chrmgr.RegisterRaceName(9004'bank')
chrmgr.RegisterRaceName(9005'hotel_grandfa')
chrmgr.RegisterRaceName(9006'hotel_grandma')
chrmgr.RegisterRaceName(9007'arms')
chrmgr.RegisterRaceName(9008'defence')
chrmgr.RegisterRaceName(9009'sailor')
chrmgr.RegisterRaceName(9010'goods_02')
chrmgr.RegisterRaceName(9011'bank_02')
chrmgr.RegisterRaceName(9012'oldster')
chrmgr.RegisterRaceName(10001'warp')
chrmgr.RegisterRaceName(10002'warp')
chrmgr.RegisterRaceName(10003'warp')
chrmgr.RegisterRaceName(10004'warp')
chrmgr.RegisterRaceName(10005'warp')
chrmgr.RegisterRaceName(10006'warp')
chrmgr.RegisterRaceName(10007'warp')
chrmgr.RegisterRaceName(10008'warp')
chrmgr.RegisterRaceName(10009'warp')
chrmgr.RegisterRaceName(10010'warp')
chrmgr.RegisterRaceName(10011'warp')
chrmgr.RegisterRaceName(10012'warp')
chrmgr.RegisterRaceName(10013'warp')
chrmgr.RegisterRaceName(10014'warp')
chrmgr.RegisterRaceName(10015'warp')
chrmgr.RegisterRaceName(10016'warp')
chrmgr.RegisterRaceName(10017'warp')
chrmgr.RegisterRaceName(10018'warp')
chrmgr.RegisterRaceName(10019'warp')
chrmgr.RegisterRaceName(10020'warp')
chrmgr.RegisterRaceName(10021'warp')
chrmgr.RegisterRaceName(10022'warp')
chrmgr.RegisterRaceName(10023'warp')
chrmgr.RegisterRaceName(10024'warp')
chrmgr.RegisterRaceName(10025'warp')
chrmgr.RegisterRaceName(10026'warp')
chrmgr.RegisterRaceName(10027'warp')
chrmgr.RegisterRaceName(10028'warp')
chrmgr.RegisterRaceName(10029'warp')
chrmgr.RegisterRaceName(10030'warp')
chrmgr.RegisterRaceName(10031'warp')
chrmgr.RegisterRaceName(10032'warp')
chrmgr.RegisterRaceName(10033'warp')
chrmgr.RegisterRaceName(10034'warp')
chrmgr.RegisterRaceName(10035'warp')
chrmgr.RegisterRaceName(10036'warp')
chrmgr.RegisterRaceName(10037'warp')
chrmgr.RegisterRaceName(10038'warp')
chrmgr.RegisterRaceName(10039'warp')
chrmgr.RegisterRaceName(10040'warp')
chrmgr.RegisterRaceName(10041'warp')
chrmgr.RegisterRaceName(10042'warp')
chrmgr.RegisterRaceName(10043'warp')
chrmgr.RegisterRaceName(10044'warp')
chrmgr.RegisterRaceName(10045'warp')
chrmgr.RegisterRaceName(10046'warp')
chrmgr.RegisterRaceName(10047'warp')
chrmgr.RegisterRaceName(10048'warp')
chrmgr.RegisterRaceName(10049'warp')
chrmgr.RegisterRaceName(10050'warp')
chrmgr.RegisterRaceName(10051'warp')
chrmgr.RegisterRaceName(10052'warp')
chrmgr.RegisterRaceName(10053'warp')
chrmgr.RegisterRaceName(10054'warp')
chrmgr.RegisterRaceName(10055'warp')
chrmgr.RegisterRaceName(10056'warp')
chrmgr.RegisterRaceName(10057'warp')
chrmgr.RegisterRaceName(10058'warp')
chrmgr.RegisterRaceName(10059'warp')
chrmgr.RegisterRaceName(10060'warp')
chrmgr.RegisterRaceName(10061'warp')
chrmgr.RegisterRaceName(10062'warp')
chrmgr.RegisterRaceName(10063'warp')
chrmgr.RegisterRaceName(10064'warp')
chrmgr.RegisterRaceName(10065'warp')
chrmgr.RegisterRaceName(10066'warp')
chrmgr.RegisterRaceName(10067'warp')
chrmgr.RegisterRaceName(10068'warp')
chrmgr.RegisterRaceName(10069'warp')
chrmgr.RegisterRaceName(10070'warp')
chrmgr.RegisterRaceName(10071'warp')
chrmgr.RegisterRaceName(10072'warp')
chrmgr.RegisterRaceName(10073'warp')
chrmgr.RegisterRaceName(10074'warp')
chrmgr.RegisterRaceName(10075'warp')
chrmgr.RegisterRaceName(10076'warp')
chrmgr.RegisterRaceName(10077'warp')
chrmgr.RegisterRaceName(10078'warp')
chrmgr.RegisterRaceName(10079'warp')
chrmgr.RegisterRaceName(10080'warp')
chrmgr.RegisterRaceName(10081'warp')
chrmgr.RegisterRaceName(10082'warp')
chrmgr.RegisterRaceName(10083'warp')
chrmgr.RegisterRaceName(10084'warp')
chrmgr.RegisterRaceName(10085'warp')
chrmgr.RegisterRaceName(10086'warp')
chrmgr.RegisterRaceName(10087'warp')
chrmgr.RegisterRaceName(10088'warp')
chrmgr.RegisterRaceName(10089'warp')
chrmgr.RegisterRaceName(10090'warp')
chrmgr.RegisterRaceName(10091'warp')
chrmgr.RegisterRaceName(10092'warp')
chrmgr.RegisterRaceName(10501'warp')
chrmgr.RegisterRaceName(10502'warp')
chrmgr.RegisterRaceName(10503'warp')
chrmgr.RegisterRaceName(10504'warp')
chrmgr.RegisterRaceName(10505'warp')
chrmgr.RegisterRaceName(10506'warp')
chrmgr.RegisterRaceName(10507'warp')
chrmgr.RegisterRaceName(10508'warp')
chrmgr.RegisterRaceName(10509'warp')
chrmgr.RegisterRaceName(10510'warp')
chrmgr.RegisterRaceName(10511'warp')
chrmgr.RegisterRaceName(10512'warp')
chrmgr.RegisterRaceName(10513'warp')
chrmgr.RegisterRaceName(10514'warp')
chrmgr.RegisterRaceName(10515'warp')
chrmgr.RegisterRaceName(10516'warp')
chrmgr.RegisterRaceName(10517'warp')
chrmgr.RegisterRaceName(10518'warp')
chrmgr.RegisterRaceName(10519'warp')
chrmgr.RegisterRaceName(10520'warp')
chrmgr.RegisterRaceName(10521'warp')
chrmgr.RegisterRaceName(10522'warp')
chrmgr.RegisterRaceName(10523'warp')
chrmgr.RegisterRaceName(10524'warp')
chrmgr.RegisterRaceName(10601'warp')
chrmgr.RegisterRaceName(10602'warp')
chrmgr.RegisterRaceName(10603'warp')
chrmgr.RegisterRaceName(10604'warp')
chrmgr.RegisterRaceName(10605'warp')
chrmgr.RegisterRaceName(10606'warp')
chrmgr.RegisterRaceName(10607'warp')
chrmgr.RegisterRaceName(10608'warp')
chrmgr.RegisterRaceName(10609'warp')
chrmgr.RegisterRaceName(10610'warp')
chrmgr.RegisterRaceName(10611'warp')
chrmgr.RegisterRaceName(10612'warp')
chrmgr.RegisterRaceName(10613'warp')
chrmgr.RegisterRaceName(10614'warp')
chrmgr.RegisterRaceName(10615'warp')
chrmgr.RegisterRaceName(10616'warp')
chrmgr.RegisterRaceName(10617'warp')
chrmgr.RegisterRaceName(10618'warp')
chrmgr.RegisterRaceName(10619'warp')
chrmgr.RegisterRaceName(10620'warp')
chrmgr.RegisterRaceName(10621'warp')
chrmgr.RegisterRaceName(10622'warp')
chrmgr.RegisterRaceName(10623'warp')
chrmgr.RegisterRaceName(10624'warp')
chrmgr.RegisterRaceName(10625'warp')
chrmgr.RegisterRaceName(10626'warp')
chrmgr.RegisterRaceName(10701'warp')
chrmgr.RegisterRaceName(10702'warp')
chrmgr.RegisterRaceName(10703'warp')
chrmgr.RegisterRaceName(10704'warp')
chrmgr.RegisterRaceName(10705'warp')
chrmgr.RegisterRaceName(10706'warp')
chrmgr.RegisterRaceName(10707'warp')
chrmgr.RegisterRaceName(10708'warp')
chrmgr.RegisterRaceName(10709'warp')
chrmgr.RegisterRaceName(10710'warp')
chrmgr.RegisterRaceName(10711'warp')
chrmgr.RegisterRaceName(10712'warp')
chrmgr.RegisterRaceName(10713'warp')
chrmgr.RegisterRaceName(10714'warp')
chrmgr.RegisterRaceName(10715'warp')
chrmgr.RegisterRaceName(10716'warp')
chrmgr.RegisterRaceName(10717'warp')
chrmgr.RegisterRaceName(10718'warp')
chrmgr.RegisterRaceName(10719'warp')
chrmgr.RegisterRaceName(10720'warp')
chrmgr.RegisterRaceName(10721'warp')
chrmgr.RegisterRaceName(10722'warp')
chrmgr.RegisterRaceName(10723'warp')
chrmgr.RegisterRaceName(10724'warp')
chrmgr.RegisterRaceName(10725'warp')
chrmgr.RegisterRaceName(10726'warp')
chrmgr.RegisterRaceName(11000'#season1/npc/cheonjo_guard_spear/')
chrmgr.RegisterRaceName(11001'#season1/npc/cheonjo_guard_bow/')
chrmgr.RegisterRaceName(11002'gangyo_patrol_spear')
chrmgr.RegisterRaceName(11003'gangyo_patrol_bow')
chrmgr.RegisterRaceName(11004'#season1/npc/sinsu_guard_spear/')
chrmgr.RegisterRaceName(11005'#season1/npc/sinsu_guard_bow/')
chrmgr.RegisterRaceName(11100'sinsu_patrol_spear')
chrmgr.RegisterRaceName(11101'sinsu_patrol_bow')
chrmgr.RegisterRaceName(11102'jinno_patrol_spear')
chrmgr.RegisterRaceName(11103'jinno_patrol_bow')
chrmgr.RegisterRaceName(11104'gangyo_patrol_spear')
chrmgr.RegisterRaceName(11105'gangyo_patrol_bow')
chrmgr.RegisterRaceName(11106'sinsu_patrol_spear')
chrmgr.RegisterRaceName(11107'sinsu_patrol_bow')
chrmgr.RegisterRaceName(11108'jinno_patrol_spear')
chrmgr.RegisterRaceName(11109'jinno_patrol_bow')
chrmgr.RegisterRaceName(11110'gangyo_patrol_spear')
chrmgr.RegisterRaceName(11111'gangyo_patrol_bow')
chrmgr.RegisterRaceName(11112'sinsu_patrol_spear')
chrmgr.RegisterRaceName(11113'sinsu_patrol_bow')
chrmgr.RegisterRaceName(11114'jinno_patrol_spear')
chrmgr.RegisterRaceName(11115'jinno_patrol_bow')
chrmgr.RegisterRaceName(11116'gangyo_patrol_spear')
chrmgr.RegisterRaceName(11117'gangyo_patrol_bow')
chrmgr.RegisterRaceName(11505'#season1/npc/goldenfrog/')
chrmgr.RegisterRaceName(11506'#season2/npc/signal_fire/')
chrmgr.RegisterRaceName(11507'#season2/npc/signal_fire/')
chrmgr.RegisterRaceName(11508'#season2/npc/signal_fire/')
chrmgr.RegisterRaceName(11509'#season2/npc/signal_fire/')
chrmgr.RegisterRaceName(11510'#season2/npc/signal_fire/')
chrmgr.RegisterRaceName(12000'campfire')
chrmgr.RegisterRaceName(12121'horse_gay')
chrmgr.RegisterRaceName(13000'wooden_door')
chrmgr.RegisterRaceName(13001'stone_door')
chrmgr.RegisterRaceName(20001'alchemist')
chrmgr.RegisterRaceName(20002'auntie')
chrmgr.RegisterRaceName(20003'baby_and_mom')
chrmgr.RegisterRaceName(20004'beggar')
chrmgr.RegisterRaceName(20005'ceramist')
chrmgr.RegisterRaceName(20006'girl_lost_elder_brother')
chrmgr.RegisterRaceName(20007'hotel_grandfa')
chrmgr.RegisterRaceName(20008'mr_restaurant')
chrmgr.RegisterRaceName(20009'oldster')
chrmgr.RegisterRaceName(20010'peddler')
chrmgr.RegisterRaceName(20011'plant_researcher')
chrmgr.RegisterRaceName(20012'rice_cake_seller')
chrmgr.RegisterRaceName(20013'sailor')
chrmgr.RegisterRaceName(20014'timid_boy')
chrmgr.RegisterRaceName(20015'woodcutter')
chrmgr.RegisterRaceName(20016'blacksmith')
chrmgr.RegisterRaceName(20017'musician')
chrmgr.RegisterRaceName(20018'doctor')
chrmgr.RegisterRaceName(20019'hunter')
chrmgr.RegisterRaceName(20020'old_pirate')
chrmgr.RegisterRaceName(20021'widow')
chrmgr.RegisterRaceName(20022'young_merchant')
chrmgr.RegisterRaceName(20023'bookworm')
chrmgr.RegisterRaceName(20024'yu_hwa_rang')
chrmgr.RegisterRaceName(20029'pony_normal')
chrmgr.RegisterRaceName(20030'pony_normal')
chrmgr.RegisterRaceName(20031'santa')
chrmgr.RegisterRaceName(20032'christmas_tree_01')
chrmgr.RegisterRaceName(20033'christmas_tree_02')
chrmgr.RegisterRaceName(20034'christmas_tree_03')
chrmgr.RegisterRaceName(20035'flag_red')
chrmgr.RegisterRaceName(20036'flag_blue')
chrmgr.RegisterRaceName(20037'flag_yellow')
chrmgr.RegisterRaceName(20040'jinno_patrol_spear')
chrmgr.RegisterRaceName(20041'beggar')
chrmgr.RegisterRaceName(20042'peddler')
chrmgr.RegisterRaceName(20044'blacksmith')
chrmgr.RegisterRaceName(20045'blacksmith')
chrmgr.RegisterRaceName(20046'blacksmith')
chrmgr.RegisterRaceName(20047'diamond')
chrmgr.RegisterRaceName(20048'amber')
chrmgr.RegisterRaceName(20049'fossil_tree')
chrmgr.RegisterRaceName(20050'copper')
chrmgr.RegisterRaceName(20051'silver')
chrmgr.RegisterRaceName(20052'gold')
chrmgr.RegisterRaceName(20053'jade')
chrmgr.RegisterRaceName(20054'ebony')
chrmgr.RegisterRaceName(20055'pearl')
chrmgr.RegisterRaceName(20056'white_gold')
chrmgr.RegisterRaceName(20057'quartz')
chrmgr.RegisterRaceName(20058'amethyst')
chrmgr.RegisterRaceName(20059'chunru')
chrmgr.RegisterRaceName(20060'alchemist')
chrmgr.RegisterRaceName(20061'alchemist')
chrmgr.RegisterRaceName(20062'alchemist')
chrmgr.RegisterRaceName(20063'alchemist')
chrmgr.RegisterRaceName(20064'alchemist')
chrmgr.RegisterRaceName(20065'alchemist')
chrmgr.RegisterRaceName(20066'alchemist')
chrmgr.RegisterRaceName(20067'alchemist')
chrmgr.RegisterRaceName(20068'alchemist')
chrmgr.RegisterRaceName(20069'alchemist')
chrmgr.RegisterRaceName(20070'alchemist')
chrmgr.RegisterRaceName(20071'alchemist')
chrmgr.RegisterRaceName(20072'alchemist')
chrmgr.RegisterRaceName(20073'seal_stone')
chrmgr.RegisterRaceName(20074'blacksmith')
chrmgr.RegisterRaceName(20075'blacksmith')
chrmgr.RegisterRaceName(20076'blacksmith')
chrmgr.RegisterRaceName(20077'jinno_patrol_spear')
chrmgr.RegisterRaceName(20078'jinno_patrol_spear')
chrmgr.RegisterRaceName(20079'jinno_patrol_spear')
chrmgr.RegisterRaceName(20080'plant_researcher')
chrmgr.RegisterRaceName(20081'seal_stone')
chrmgr.RegisterRaceName(20082'GM')
chrmgr.RegisterRaceName(20083'oldster')
chrmgr.RegisterRaceName(20084'#season1/npc/chagirap/')
chrmgr.RegisterRaceName(20086'#season1/npc/wondaim/')
chrmgr.RegisterRaceName(20087'#season1/npc/handaup/')
chrmgr.RegisterRaceName(20088'#season1/npc/visamun/')
chrmgr.RegisterRaceName(20089'#season1/npc/jinmoo/')
chrmgr.RegisterRaceName(20090'#season1/npc/samahi/')
chrmgr.RegisterRaceName(20091'#season1/npc/backchon/')
chrmgr.RegisterRaceName(20092'#season1/npc/ayuka/')
chrmgr.RegisterRaceName(20093'#season1/npc/visal/')
chrmgr.RegisterRaceName(20094'#season1/npc/yejin/')
chrmgr.RegisterRaceName(20095'#season1/npc/sinseon/')
chrmgr.RegisterRaceName(20096'seal_stone')
chrmgr.RegisterRaceName(20097'#season2/npc/sinsu_warpgate/')
chrmgr.RegisterRaceName(20098'#season2/npc/chenjo_warpgate/')
chrmgr.RegisterRaceName(20099'#season2/npc/jinno_warpgate/')
chrmgr.RegisterRaceName(20101'pony_normal')
chrmgr.RegisterRaceName(20102'pony_member')
chrmgr.RegisterRaceName(20103'pony_master')
chrmgr.RegisterRaceName(20104'horse_normal')
chrmgr.RegisterRaceName(20105'horse_member')
chrmgr.RegisterRaceName(20106'horse_master')
chrmgr.RegisterRaceName(20107'horse2_normal')
chrmgr.RegisterRaceName(20108'horse2_member')
chrmgr.RegisterRaceName(20109'horse2_master')
chrmgr.RegisterRaceName(20110'boar')
chrmgr.RegisterRaceName(20111'dog_god')
chrmgr.RegisterRaceName(20112'fire_tiger')
chrmgr.RegisterRaceName(20113'lion')
chrmgr.RegisterRaceName(20114'lion_white')
chrmgr.RegisterRaceName(20115'boar_2')
chrmgr.RegisterRaceName(20116'dog_god_2')
chrmgr.RegisterRaceName(20117'fire_tiger_2')
chrmgr.RegisterRaceName(20118'lion_2')
chrmgr.RegisterRaceName(20119'horse_event1')
chrmgr.RegisterRaceName(20120'fire_tiger_blue')
chrmgr.RegisterRaceName(20121'fire_tiger_darkred')
chrmgr.RegisterRaceName(20122'fire_tiger_gold')
chrmgr.RegisterRaceName(20123'fire_tiger_green')
chrmgr.RegisterRaceName(20124'fire_tiger_pied')
chrmgr.RegisterRaceName(20125'fire_tiger_white')
chrmgr.RegisterRaceName(20126'santa')
chrmgr.RegisterRaceName(20200'#season1/npc/wondaim/')
chrmgr.RegisterRaceName(20201'boar')
chrmgr.RegisterRaceName(20202'dog_god')
chrmgr.RegisterRaceName(20203'fire_tiger')
chrmgr.RegisterRaceName(20204'lion')
chrmgr.RegisterRaceName(20205'boar_2')
chrmgr.RegisterRaceName(20206'dog_god_2')
chrmgr.RegisterRaceName(20207'fire_tiger_2')
chrmgr.RegisterRaceName(20208'lion_2')
chrmgr.RegisterRaceName(20209'boar_3')
chrmgr.RegisterRaceName(20210'dog_god_3')
chrmgr.RegisterRaceName(20211'fire_tiger_3')
chrmgr.RegisterRaceName(20212'lion_3')
chrmgr.RegisterRaceName(20213'reindeer_male1')
chrmgr.RegisterRaceName(20214'reindeer_male2')
chrmgr.RegisterRaceName(20215'reindeer_male3')
chrmgr.RegisterRaceName(20216'reindeer_female1')
chrmgr.RegisterRaceName(20217'reindeer_female2')
chrmgr.RegisterRaceName(20218'reindeer_female3')
chrmgr.RegisterRaceName(20219'horse_halloween1')
chrmgr.RegisterRaceName(20220'reindeer_male1_christmas1')
chrmgr.RegisterRaceName(20300'sinsu_patrol_spear')
chrmgr.RegisterRaceName(20301'sinsu_patrol_spear')
chrmgr.RegisterRaceName(20302'sinsu_patrol_spear')
chrmgr.RegisterRaceName(20303'sinsu_patrol_spear')
chrmgr.RegisterRaceName(20304'sinsu_patrol_spear')
chrmgr.RegisterRaceName(20305'sinsu_patrol_spear')
chrmgr.RegisterRaceName(20306'sinsu_patrol_spear')
chrmgr.RegisterRaceName(20307'sinsu_patrol_spear')
chrmgr.RegisterRaceName(20320'gangyo_patrol_spear')
chrmgr.RegisterRaceName(20321'gangyo_patrol_spear')
chrmgr.RegisterRaceName(20322'gangyo_patrol_spear')
chrmgr.RegisterRaceName(20323'gangyo_patrol_spear')
chrmgr.RegisterRaceName(20324'gangyo_patrol_spear')
chrmgr.RegisterRaceName(20325'gangyo_patrol_spear')
chrmgr.RegisterRaceName(20326'gangyo_patrol_spear')
chrmgr.RegisterRaceName(20327'gangyo_patrol_spear')
chrmgr.RegisterRaceName(20340'jinno_patrol_spear')
chrmgr.RegisterRaceName(20341'jinno_patrol_spear')
chrmgr.RegisterRaceName(20342'jinno_patrol_spear')
chrmgr.RegisterRaceName(20343'jinno_patrol_spear')
chrmgr.RegisterRaceName(20344'jinno_patrol_spear')
chrmgr.RegisterRaceName(20345'jinno_patrol_spear')
chrmgr.RegisterRaceName(20346'jinno_patrol_spear')
chrmgr.RegisterRaceName(20347'jinno_patrol_spear')
chrmgr.RegisterRaceName(20348'jinno_patrol_spear')
chrmgr.RegisterRaceName(20349'jinno_patrol_spear')
chrmgr.RegisterRaceName(20350'jinno_patrol_spear')
chrmgr.RegisterRaceName(20351'jinno_patrol_spear')
chrmgr.RegisterRaceName(20352'tombstone')
chrmgr.RegisterRaceName(20353'tombstone1')
chrmgr.RegisterRaceName(20354'guard_leader')
chrmgr.RegisterRaceName(20355'guard_leader')
chrmgr.RegisterRaceName(20356'#season1/npc/mirinae_brother/')
chrmgr.RegisterRaceName(20357'#season1/npc/moonstone/')
chrmgr.RegisterRaceName(20358'#season1/npc/nnflower/')
chrmgr.RegisterRaceName(20359'#season1/npc/mailbox/')
chrmgr.RegisterRaceName(20360'#season1/npc/firestone/')
chrmgr.RegisterRaceName(20361'#season1/npc/waterstone/')
chrmgr.RegisterRaceName(20362'#season1/npc/treestone/')
chrmgr.RegisterRaceName(20363'#season1/npc/steelstone/')
chrmgr.RegisterRaceName(20364'#season1/npc/naoki/')
chrmgr.RegisterRaceName(20365'#season1/npc/steelstone/')
chrmgr.RegisterRaceName(20366'#season1/npc/keyholestone/')
chrmgr.RegisterRaceName(20367'jinno_patrol_spear')
chrmgr.RegisterRaceName(20368'seal_stone')
chrmgr.RegisterRaceName(20369'leechung')
chrmgr.RegisterRaceName(20370'seal_stone')
chrmgr.RegisterRaceName(20371'spy1')
chrmgr.RegisterRaceName(20384'christmas_tree')
chrmgr.RegisterRaceName(20400'jinno_patrol_spear')
chrmgr.RegisterRaceName(20500'#d:/m2sg/football/')
chrmgr.RegisterRaceName(20501'#d:/ymir work/npc2/halloween1/')
chrmgr.RegisterRaceName(30000'privateshop')
chrmgr.RegisterRaceName(30001'privateshop2')
chrmgr.RegisterRaceName(30101'zombie_key_stone')
chrmgr.RegisterRaceName(30102'zombie_god_stone')
chrmgr.RegisterRaceName(30103'zombie_security_stone')
chrmgr.RegisterRaceName(30104'zombie_security_stone')
chrmgr.RegisterRaceName(30111'zombie_ghost_door')
chrmgr.RegisterRaceName(30112'zombie_ghost_door')
chrmgr.RegisterRaceName(30113'zombie_ghost_door')
chrmgr.RegisterRaceName(30114'zombie_ghost_door')
chrmgr.RegisterRaceName(30115'zombie_ghost_door')
chrmgr.RegisterRaceName(30116'zombie_ghost_door')
chrmgr.RegisterRaceName(30117'zombie_ghost_door')
chrmgr.RegisterRaceName(30118'zombie_ghost_door')
chrmgr.RegisterRaceName(30119'zombie_ghost_door')
chrmgr.RegisterRaceName(30120'obj_bag003')
chrmgr.RegisterRaceName(30121'suraghost')
chrmgr.RegisterRaceName(30122'warriorghost')
chrmgr.RegisterRaceName(30123'worship_dragon')
chrmgr.RegisterRaceName(30124'sura_skeleton1')
chrmgr.RegisterRaceName(30125'sura_skeleton2')
chrmgr.RegisterRaceName(30126'sura_skeleton3')
chrmgr.RegisterRaceName(30127'sura_skeleton4')
chrmgr.RegisterRaceName(30128'sura_skeleton5')
chrmgr.RegisterRaceName(30129'rabbit')
chrmgr.RegisterRaceName(30130'#season1/npc/waterstone/')
chrmgr.RegisterRaceName(33002'historian')
chrmgr.RegisterRaceName(33003'starveling')
chrmgr.RegisterRaceName(33004'starveling2')
chrmgr.RegisterRaceName(33005'starveling3')
chrmgr.RegisterRaceName(33006'starveling4')
chrmgr.RegisterRaceName(33007'starveling5')
chrmgr.RegisterRaceName(33008'halloween1')
chrmgr.RegisterRaceName(34001'phoenix1')
chrmgr.RegisterRaceName(34002'reindeer_young1')
chrmgr.RegisterRaceName(34003'phoenix2')
chrmgr.RegisterRaceName(34004'pwahuang1')
chrmgr.RegisterRaceName(34005'pig_young1')
chrmgr.RegisterRaceName(34006'dog_young1')
chrmgr.RegisterRaceName(34007'tiger_young1')
chrmgr.RegisterRaceName(34008'lion_young1')
chrmgr.RegisterRaceName(34009'pwahuang1_2')
chrmgr.RegisterRaceName(34010'reindeer_young1_christmas1')
chrmgr.RegisterRaceName(34011'bear_young1')
chrmgr.RegisterRaceName(34012'panda_young1'
07/27/2013 01:30 Laben#78
ah need anymore and there is should be extractor for type 3 4 extract dump to .gr2 and .dds files

so who know it
07/27/2013 01:32 ´LaLu`#79
hat jemand ein entpacker für typ 3 - 4 nun ?
07/27/2013 11:30 [SA]Drilius#80
This is to break into the protected game files of Metin2 Singapore and World of Metin2. That violates the game terms and conditions, files should neither be accessed, modified nor distributed by any means.

I was employed at TEC-Interactive and have been a developer for Metin2 PH for a long time.

This release grants people access to these copyrighted files, and hence, I'm requesting a deletion for this thread immediately.

TEC-Interactive is debating on writing a DMCA Notice against such releases and the unlawful rules of Metin2 section of Elitepvpers.com that lets people do whatever they want with protected and copyrighted materials.

Thread reported.
07/27/2013 11:36 darkfr3ak#81
Quote:
Originally Posted by [SA]Drilius View Post
This is to break into the protected game files of Metin2 Singapore and World of Metin2. That violates the game terms and conditions, files should neither be accessed, modified nor distributed by any means.

I was employed at TEC-Interactive and have been a developer for Metin2 PH for a long time.

This release grants people access to these copyrighted files, and hence, I'm requesting a deletion for this thread immediately.

TEC-Interactive is debating on writing a DMCA Notice against such releases and the unlawful rules of Metin2 section of Elitepvpers.com that lets people do whatever they want with protected and copyrighted materials.

Thread reported.
You are my personal king... next time you report the whole internet, becaue EVERYTHING you can find in this thread you can also find as open source with google. And... you WERE a developer? there must be a reason why you aren't a developer anymore...

:facepalm: get a life, kid...
07/27/2013 11:46 .Shōgun#82
Quote:
Originally Posted by [SA]Drilius View Post
This is to break into the protected game files of Metin2 Singapore and World of Metin2. That violates the game terms and conditions, files should neither be accessed, modified nor distributed by any means.

I was employed at TEC-Interactive and have been a developer for Metin2 PH for a long time.

This release grants people access to these copyrighted files, and hence, I'm requesting a deletion for this thread immediately.

TEC-Interactive is debating on writing a DMCA Notice against such releases and the unlawful rules of Metin2 section of Elitepvpers.com that lets people do whatever they want with protected and copyrighted materials.

Thread reported.
Are you aware that DMCA is an United States law?
07/27/2013 11:48 [SA]Drilius#83
Quote:
Originally Posted by darkfr3ak View Post
You are my personal king... next time you report the whole internet, becaue EVERYTHING you can find in this thread you can also find as open source with google. And... you WERE a developer? there must be a reason why you aren't a developer anymore...

:facepalm: get a life, kid...
We're trying to stand against such commits and put restricts to our work that would take a whole life of someone of you if you'd try to do it.

I was a developer for 3 fine months, after, I quit for being sick of the corruption I've always witnessed, GM's get paid for making items privately, Christopher plays with a full geared character, a LOT of undetected hacks that I tried them myself.

And no, I haven't seen such a breaker to our compiled files on google.
I know there's a whole bunch of C++ programs that would do this job, but it takes a smart ass to use them.

Quote:
Originally Posted by Uncorrupted View Post
Are you aware that DMCA is an United States law?
DMCA is not the only way to protect ourselves from copyright infringement, there should be an action taken as soon as possible against these illegal works.

TEC-Interactive also has the right to sue you while you're at home watching The Simpsons.

Just be nice and original, there's no need to use or steal copyrighted stuff.
07/27/2013 12:52 [uLow]NTX?!#84
Quote:
Originally Posted by [SA]Drilius View Post
We're trying to stand against such commits and put restricts to our work that would take a whole life of someone of you if you'd try to do it.

I was a developer for 3 fine months, after, I quit for being sick of the corruption I've always witnessed, GM's get paid for making items privately, Christopher plays with a full geared character, a LOT of undetected hacks that I tried them myself.

And no, I haven't seen such a breaker to our compiled files on google.
I know there's a whole bunch of C++ programs that would do this job, but it takes a smart ass to use them.




DMCA is not the only way to protect ourselves from copyright infringement, there should be an action taken as soon as possible against these illegal works.

TEC-Interactive also has the right to sue you while you're at home watching The Simpsons.

Just be nice and original, there's no need to use or steal copyrighted stuff.
You complain about Law & Copyrighted Material but your Usertitel is the name of ( 2 ) pServer(s) ?
07/27/2013 13:37 KeKeAndrey#85
Error decompyler is not a valid win32 application
07/27/2013 14:43 mamAmok#86
Also game.pyc geht nicht zum decompielen und dann wieder zu packen !

[Only registered and activated users can see links. Click Here To Register...]

das das Problem was ich auch hatte mit dem decompilen:

Code:
    def _GameWindow__BuildKeyDict(self):
        onPressKeyDict = { }
        
        def onPressKeyDict[app.DIK_1]():
            return self._GameWindow__PressNumKey(1)
sollte:
Code:
	def _GameWindow__BuildKeyDict(self):
		onPressKeyDict = {}

		onPressKeyDict[app.DIK_1]	= lambda : self._GameWindow__PressNumKey(1)
sein also geht der Compiler nicht für alles !
07/27/2013 14:49 Ocelot2606#87
Quote:
Originally Posted by mamAmok View Post
Also game.pyc geht nicht zum decompielen und dann wieder zu packen !

[Only registered and activated users can see links. Click Here To Register...]

das das Problem was ich auch hatte mit dem decompilen:

Code:
    def _GameWindow__BuildKeyDict(self):
        onPressKeyDict = { }
        
        def onPressKeyDict[app.DIK_1]():
            return self._GameWindow__PressNumKey(1)
sollte:
Code:
	def _GameWindow__BuildKeyDict(self):
		onPressKeyDict = {}

		onPressKeyDict[app.DIK_1]	= lambda : self._GameWindow__PressNumKey(1)
sein also geht der Compiler nicht für alles !
Geht sehr wohl hier haste die ganze

PHP Code:
# Source Generated by .MaisKolben™-Decompyler
# File: game.pyc

import os
import app
import dbg
import grp
import item
import background
import chr
import chrmgr
import player
import snd
import chat
import textTail
import snd
import net
import effect
import wndMgr
import fly
import systemSetting
import quest
import guild
import skill
import messenger
import locale
import constInfo
import exchange
import ime
import ui
import uiCommon
import uiPhaseCurtain
import uiMapNameShower
import uiAffectShower
import uiPlayerGauge
import uiCharacter
import uiTarget
import uiPrivateShopBuilder
import mouseModule
import consoleModule
import locale
import playerSettingModule
import interfaceModule
import musicInfo
import stringCommander
from _weakref import proxy
kScreenshotDirectory 
'screenshot'
cameraDistance 1550.0
cameraPitch 
27.0
cameraRotation 
0.0
cameraHeight 
100.0
testAlignment 
0

class GameWindow(ui.ScriptWindow):
    
    
def __init__(selfstream):
        
ui.ScriptWindow.__init__(self'GAME')
        
self.SetWindowName('game')
        
net.SetPhaseWindow(net.PHASE_WINDOW_GAMEself)
        
player.SetGameWindow(self)
        
self.quickSlotPageIndex 0
        self
.lastPKModeSendedTime 0
        self
.pressNumber None
        self
.guildWarQuestionDialog None
        self
.stream stream
        self
.interface = interfaceModule.Interface()
        
self.interface.MakeInterface()
        
self.interface.ShowDefaultWindows()
        
self.curtain uiPhaseCurtain.PhaseCurtain()
        
self.curtain.speed 0.029999999999999999
        self
.curtain.Hide()
        
self.targetBoard uiTarget.TargetBoard()
        
self.targetBoard.SetWhisperEvent(ui.__mem_func__(self.interface.OpenWhisperDialog))
        
self.targetBoard.Hide()
        
self.console consoleModule.ConsoleWindow()
        
self.console.BindGameClass(self)
        
self.console.SetConsoleSize(wndMgr.GetScreenWidth(), 200)
        
self.console.Hide()
        
self.mapNameShower uiMapNameShower.MapNameShower()
        
self.affectShower uiAffectShower.AffectShower()
        
self.playerGauge uiPlayerGauge.PlayerGauge(self)
        
self.playerGauge.Hide()
        
self._GameWindow__SetQuickSlotMode()
        
self._GameWindow__ServerCommand_Build()
        
self._GameWindow__ProcessPreservedServerCommand()

    
    
def __del__(self):
        
player.SetGameWindow(0)
        
net.ClearPhaseWindow(net.PHASE_WINDOW_GAMEself)
        
ui.ScriptWindow.__del__(self)

    
    
def Open(self):
        
app.SetFrameSkip(1)
        
self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())
        
self.quickSlotPageIndex 0
        self
.PickingCharacterIndex = -1
        self
.PickingItemIndex = -1
        self
.consoleEnable 0
        self
.isShowDebugInfo 0
        self
.ShowNameFlag 0
        self
.enableXMasBoom 0
        self
.startTimeXMasBoom 0.0
        self
.indexXMasBoom 0
        app
.SetCamera(cameraDistancecameraPitchcameraRotationcameraHeight)
        
constInfo.SET_DEFAULT_CAMERA_MAX_DISTANCE()
        
constInfo.SET_DEFAULT_CHRNAME_COLOR()
        
constInfo.SET_DEFAULT_FOG_LEVEL()
        
constInfo.SET_DEFAULT_CONVERT_EMPIRE_LANGUAGE_ENABLE()
        
constInfo.SET_DEFAULT_USE_ITEM_WEAPON_TABLE_ATTACK_BONUS()
        
constInfo.SET_DEFAULT_USE_SKILL_EFFECT_ENABLE()
        
constInfo.SET_TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE()
        
import event
        event
.SetLeftTimeString('Remaining Time: %d Sec.')
        
textTail.EnablePKTitle(constInfo.PVPMODE_ENABLE)
        if 
constInfo.PVPMODE_TEST_ENABLE:
            
self.testPKMode ui.TextLine()
            
self.testPKMode.SetFontName('Tahoma:14')
            
self.testPKMode.SetPosition(015)
            
self.testPKMode.SetWindowHorizontalAlignCenter()
            
self.testPKMode.SetHorizontalAlignCenter()
            
self.testPKMode.SetFeather()
            
self.testPKMode.SetOutline()
            
self.testPKMode.Show()
            
self.testAlignment ui.TextLine()
            
self.testAlignment.SetFontName('Tahoma:14')
            
self.testAlignment.SetPosition(035)
            
self.testAlignment.SetWindowHorizontalAlignCenter()
            
self.testAlignment.SetHorizontalAlignCenter()
            
self.testAlignment.SetFeather()
            
self.testAlignment.SetOutline()
            
self.testAlignment.Show()
        
        
self._GameWindow__BuildKeyDict()
        
self._GameWindow__BuildDebugInfo()
        
uiPrivateShopBuilder.Clear()
        
exchange.InitTrading()
        
snd.SetMusicVolume(systemSetting.GetMusicVolume() * net.GetFieldMusicVolume())
        
snd.SetSoundVolume(systemSetting.GetSoundVolume())
        
netFieldMusicFileName net.GetFieldMusicFileName()
        if 
netFieldMusicFileName:
            
snd.FadeInMusic('BGM/' netFieldMusicFileName)
        
elif musicInfo.fieldMusic != '':
            
snd.FadeInMusic('BGM/' musicInfo.fieldMusic)
        
        
self._GameWindow__SetQuickSlotMode()
        
self._GameWindow__SelectQuickPage(self.quickSlotPageIndex)
        
self.SetFocus()
        
self.Show()
        
app.ShowCursor()
        
net.SendEnterGamePacket()
        
        try:
            
self.StartGame()
        
except:
            
import exception
            exception
.Abort('GameWindow.Open')


    
    
def Close(self):
        global 
cameraDistancecameraPitchcameraRotationcameraHeight
        self
.Hide()
        (
cameraDistancecameraPitchcameraRotationcameraHeight) = app.GetCamera()
        if 
musicInfo.fieldMusic != '':
            
snd.FadeOutMusic('BGM/' musicInfo.fieldMusic)
        
        
self.onPressKeyDict None
        self
.onClickKeyDict None
        chat
.Close()
        
snd.StopAllSound()
        
grp.InitScreenEffect()
        
chr.Destroy()
        
textTail.Clear()
        
quest.Clear()
        
background.Destroy()
        
guild.Destroy()
        
messenger.Destroy()
        
skill.ClearSkillData()
        
wndMgr.Unlock()
        
mouseModule.mouseController.DeattachObject()
        if 
self.guildWarQuestionDialog:
            
self.guildWarQuestionDialog.Close()
        
        
self.guildNameBoard None
        self
.partyRequestQuestionDialog None
        self
.partyInviteQuestionDialog None
        self
.guildInviteQuestionDialog None
        self
.guildWarQuestionDialog None
        self
.messengerAddFriendQuestion None
        self
.itemDropQuestionDialog None
        self
.confirmDialog None
        self
.PrintCoord None
        self
.FrameRate None
        self
.Pitch None
        self
.Splat None
        self
.TextureNum None
        self
.ObjectNum None
        self
.ViewDistance None
        self
.ClearDictionary()
        
self.playerGauge None
        self
.mapNameShower None
        self
.affectShower None
        
if self.console:
            
self.console.BindGameClass(0)
            
self.console.Close()
            
self.console None
        
        
if self.targetBoard:
            
self.targetBoard.Destroy()
            
self.targetBoard None
        
        
if self.interface:
            
self.interface.HideAllWindows()
            
self.interface.Close()
            
self.interface = None
        
        player
.ClearSkillDict()
        
player.ResetCameraRotation()
        
self.KillFocus()
        
app.HideCursor()
        
log('GameWindow::Close()')

    
    
def _GameWindow__BuildKeyDict(self):
        
onPressKeyDict = { }
        
        
def onPressKeyDict[app.DIK_1]():
            return 
self._GameWindow__PressNumKey(1)

        
        
def onPressKeyDict[app.DIK_2]():
            return 
self._GameWindow__PressNumKey(2)

        
        
def onPressKeyDict[app.DIK_3]():
            return 
self._GameWindow__PressNumKey(3)

        
        
def onPressKeyDict[app.DIK_4]():
            return 
self._GameWindow__PressNumKey(4)

        
        
def onPressKeyDict[app.DIK_5]():
            return 
self._GameWindow__PressNumKey(5)

        
        
def onPressKeyDict[app.DIK_6]():
            return 
self._GameWindow__PressNumKey(6)

        
        
def onPressKeyDict[app.DIK_7]():
            return 
self._GameWindow__PressNumKey(7)

        
        
def onPressKeyDict[app.DIK_8]():
            return 
self._GameWindow__PressNumKey(8)

        
        
def onPressKeyDict[app.DIK_9]():
            return 
self._GameWindow__PressNumKey(9)

        
        
def onPressKeyDict[app.DIK_F1]():
            return 
self._GameWindow__PressQuickSlot(4)

        
        
def onPressKeyDict[app.DIK_F2]():
            return 
self._GameWindow__PressQuickSlot(5)

        
        
def onPressKeyDict[app.DIK_F3]():
            return 
self._GameWindow__PressQuickSlot(6)

        
        
def onPressKeyDict[app.DIK_F4]():
            return 
self._GameWindow__PressQuickSlot(7)

        
        
def onPressKeyDict[app.DIK_F12]():
            return 
self.interface.OpenHelpWindow()

        
        
def onPressKeyDict[app.DIK_LALT]():
            return 
self.ShowName()

        
        
def onPressKeyDict[app.DIK_LCONTROL]():
            return 
self.ShowMouseImage()

        
        
def onPressKeyDict[app.DIK_SYSRQ]():
            return 
self.SaveScreen()

        
        
def onPressKeyDict[app.DIK_SPACE]():
            return 
self.StartAttack()

        
        
def onPressKeyDict[app.DIK_UP]():
            return 
self.MoveUp()

        
        
def onPressKeyDict[app.DIK_DOWN]():
            return 
self.MoveDown()

        
        
def onPressKeyDict[app.DIK_LEFT]():
            return 
self.MoveLeft()

        
        
def onPressKeyDict[app.DIK_RIGHT]():
            return 
self.MoveRight()

        
        
def onPressKeyDict[app.DIK_W]():
            return 
self.MoveUp()

        
        
def onPressKeyDict[app.DIK_S]():
            return 
self.MoveDown()

        
        
def onPressKeyDict[app.DIK_A]():
            return 
self.MoveLeft()

        
        
def onPressKeyDict[app.DIK_D]():
            return 
self.MoveRight()

        
        
def onPressKeyDict[app.DIK_E]():
            return 
app.RotateCamera(app.CAMERA_TO_POSITIVE)

        
        
def onPressKeyDict[app.DIK_R]():
            return 
app.ZoomCamera(app.CAMERA_TO_NEGATIVE)

        
        
def onPressKeyDict[app.DIK_T]():
            return 
app.PitchCamera(app.CAMERA_TO_NEGATIVE)

        
onPressKeyDict[app.DIK_G] = self._GameWindow__PressGKey
        onPressKeyDict
[app.DIK_Q] = self._GameWindow__PressQKey
        
        def onPressKeyDict
[app.DIK_NUMPAD9]():
            return 
app.MovieResetCamera()

        
        
def onPressKeyDict[app.DIK_NUMPAD4]():
            return 
app.MovieRotateCamera(app.CAMERA_TO_NEGATIVE)

        
        
def onPressKeyDict[app.DIK_NUMPAD6]():
            return 
app.MovieRotateCamera(app.CAMERA_TO_POSITIVE)

        
        
def onPressKeyDict[app.DIK_PGUP]():
            return 
app.MovieZoomCamera(app.CAMERA_TO_NEGATIVE)

        
        
def onPressKeyDict[app.DIK_PGDN]():
            return 
app.MovieZoomCamera(app.CAMERA_TO_POSITIVE)

        
        
def onPressKeyDict[app.DIK_NUMPAD8]():
            return 
app.MoviePitchCamera(app.CAMERA_TO_NEGATIVE)

        
        
def onPressKeyDict[app.DIK_NUMPAD2]():
            return 
app.MoviePitchCamera(app.CAMERA_TO_POSITIVE)

        
        
def onPressKeyDict[app.DIK_GRAVE]():
            return 
self.PickUpItem()

        
        
def onPressKeyDict[app.DIK_Z]():
            return 
self.PickUpItem()

        
        
def onPressKeyDict[app.DIK_C](state 'STATUS'):
            return 
self.interface.ToggleCharacterWindow(state)

        
        
def onPressKeyDict[app.DIK_V](state 'SKILL'):
            return 
self.interface.ToggleCharacterWindow(state)

        
        
def onPressKeyDict[app.DIK_N](state 'QUEST'):
            return 
self.interface.ToggleCharacterWindow(state)

        
        
def onPressKeyDict[app.DIK_I]():
            return 
self.interface.ToggleInventoryWindow()

        
        
def onPressKeyDict[app.DIK_M]():
            return 
self.interface.PressMKey()

        
        
def onPressKeyDict[app.DIK_ADD]():
            return 
self.interface.MiniMapScaleUp()

        
        
def onPressKeyDict[app.DIK_SUBTRACT]():
            return 
self.interface.MiniMapScaleDown()

        
        
def onPressKeyDict[app.DIK_L]():
            return 
self.interface.ToggleChatLogWindow()

        
        
def onPressKeyDict[app.DIK_COMMA]():
            return 
self.ShowConsole()

        
        
def onPressKeyDict[app.DIK_LSHIFT]():
            return 
self._GameWindow__SetQuickPageMode()

        
        
def onPressKeyDict[app.DIK_J]():
            return 
self._GameWindow__PressJKey()

        
        
def onPressKeyDict[app.DIK_H]():
            return 
self._GameWindow__PressHKey()

        
        
def onPressKeyDict[app.DIK_B]():
            return 
self._GameWindow__PressBKey()

        
        
def onPressKeyDict[app.DIK_F]():
            return 
self._GameWindow__PressFKey()

        
self.onPressKeyDict onPressKeyDict
        onClickKeyDict 
= { }
        
        
def onClickKeyDict[app.DIK_UP]():
            return 
self.StopUp()

        
        
def onClickKeyDict[app.DIK_DOWN]():
            return 
self.StopDown()

        
        
def onClickKeyDict[app.DIK_LEFT]():
            return 
self.StopLeft()

        
        
def onClickKeyDict[app.DIK_RIGHT]():
            return 
self.StopRight()

        
        
def onClickKeyDict[app.DIK_SPACE]():
            return 
self.EndAttack()

        
        
def onClickKeyDict[app.DIK_W]():
            return 
self.StopUp()

        
        
def onClickKeyDict[app.DIK_S]():
            return 
self.StopDown()

        
        
def onClickKeyDict[app.DIK_A]():
            return 
self.StopLeft()

        
        
def onClickKeyDict[app.DIK_D]():
            return 
self.StopRight()

        
        
def onClickKeyDict[app.DIK_Q]():
            return 
app.RotateCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_E]():
            return 
app.RotateCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_R]():
            return 
app.ZoomCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_F]():
            return 
app.ZoomCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_T]():
            return 
app.PitchCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_G]():
            return 
self._GameWindow__ReleaseGKey()

        
        
def onClickKeyDict[app.DIK_NUMPAD4]():
            return 
app.MovieRotateCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_NUMPAD6]():
            return 
app.MovieRotateCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_PGUP]():
            return 
app.MovieZoomCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_PGDN]():
            return 
app.MovieZoomCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_NUMPAD8]():
            return 
app.MoviePitchCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_NUMPAD2]():
            return 
app.MoviePitchCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_LALT]():
            return 
self.HideName()

        
        
def onClickKeyDict[app.DIK_LCONTROL]():
            return 
self.HideMouseImage()

        
        
def onClickKeyDict[app.DIK_LSHIFT]():
            return 
self._GameWindow__SetQuickSlotMode()

        
self.onClickKeyDict onClickKeyDict

    
    def _GameWindow__PressNumKey
(selfnum):
        if 
app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            if 
num >= and num <= 9:
                if 
chrmgr.IsPossibleEmoticon(-1):
                    
chrmgr.SetEmoticon(-1int(num) - 1)
                    
net.SendEmoticon(int(num) - 1)
                
            
        
elif num >= and num <= 4:
            
self.pressNumber(num 1)
        

    
    
def _GameWindow__ClickBKey(self):
        if 
constInfo.PVPMODE_ACCELKEY_ENABLE and not app.IsPressed(app.DIK_LCONTROL) and not app.IsPressed(app.DIK_RCONTROL):
            
self.ChangePKMode()
        

    
    
def _GameWindow__PressJKey(self):
        if 
app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            if 
player.IsMountingHorse():
                
net.SendChatPacket('/unmount')
            
elif not uiPrivateShopBuilder.IsBuildingPrivateShop():
                for 
i in xrange(player.INVENTORY_PAGE_SIZE):
                    if 
player.GetItemIndex(iin (7111471116711187112071164):
                        
net.SendItemUsePacket(i)
                        break
                    
            
        

    
    
def _GameWindow__PressHKey(self):
        if 
app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            
net.SendChatPacket('/user_horse_ride')
        

    
    
def _GameWindow__PressBKey(self):
        if 
app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            
net.SendChatPacket('/user_horse_back')
        else:
            
state 'EMOTICON'
            
self.interface.ToggleCharacterWindow(state)

    
    
def _GameWindow__PressFKey(self):
        if 
app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            
net.SendChatPacket('/user_horse_feed')
        else:
            
app.ZoomCamera(app.CAMERA_TO_POSITIVE)

    
    
def _GameWindow__PressGKey(self):
        if 
app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            
net.SendChatPacket('/ride')
        
elif self.ShowNameFlag:
            
self.interface.ToggleGuildWindow()
        else:
            
app.PitchCamera(app.CAMERA_TO_POSITIVE)

    
    
def _GameWindow__ReleaseGKey(self):
        
app.PitchCamera(app.CAMERA_STOP)

    
    
def _GameWindow__PressQKey(self):
        if 
app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            
self.interface.ToggleQuestButtons()
        else:
            
app.RotateCamera(app.CAMERA_TO_NEGATIVE)

    
    
def _GameWindow__SetQuickSlotMode(self):
        
self.pressNumber ui.__mem_func__(self._GameWindow__PressQuickSlot)

    
    
def _GameWindow__SetQuickPageMode(self):
        
self.pressNumber ui.__mem_func__(self._GameWindow__SelectQuickPage)

    
    
def _GameWindow__PressQuickSlot(selflocalSlotIndex):
        
player.RequestUseLocalQuickSlot(localSlotIndex)

    
    
def _GameWindow__SelectQuickPage(selfpageIndex):
        
self.quickSlotPageIndex pageIndex
        player
.SetQuickPage(pageIndex)

    
    
def ToggleDebugInfo(self):
        
self.isShowDebugInfo not (self.isShowDebugInfo)
        if 
self.isShowDebugInfo:
            
self.PrintCoord.Show()
            
self.FrameRate.Show()
            
self.Pitch.Show()
            
self.Splat.Show()
            
self.TextureNum.Show()
            
self.ObjectNum.Show()
            
self.ViewDistance.Show()
        else:
            
self.PrintCoord.Hide()
            
self.FrameRate.Hide()
            
self.Pitch.Hide()
            
self.Splat.Hide()
            
self.TextureNum.Hide()
            
self.ObjectNum.Hide()
            
self.ViewDistance.Hide()

    
    
def _GameWindow__BuildDebugInfo(self):
        
self.PrintCoord ui.TextLine()
        
self.PrintCoord.SetFontName('Tahoma:14')
        
self.PrintCoord.SetPosition(wndMgr.GetScreenWidth() - 2700)
        
self.FrameRate ui.TextLine()
        
self.FrameRate.SetFontName('Tahoma:14')
        
self.FrameRate.SetPosition(wndMgr.GetScreenWidth() - 27020)
        
self.Pitch ui.TextLine()
        
self.Pitch.SetFontName('Tahoma:14')
        
self.Pitch.SetPosition(wndMgr.GetScreenWidth() - 27040)
        
self.Splat ui.TextLine()
        
self.Splat.SetFontName('Tahoma:14')
        
self.Splat.SetPosition(wndMgr.GetScreenWidth() - 27060)
        
self.TextureNum ui.TextLine()
        
self.TextureNum.SetFontName('Tahoma:14')
        
self.TextureNum.SetPosition(wndMgr.GetScreenWidth() - 27080)
        
self.ObjectNum ui.TextLine()
        
self.ObjectNum.SetFontName('Tahoma:14')
        
self.ObjectNum.SetPosition(wndMgr.GetScreenWidth() - 270100)
        
self.ViewDistance ui.TextLine()
        
self.ViewDistance.SetFontName('Tahoma:14')
        
self.ViewDistance.SetPosition(00)

    
    
def _GameWindow__NotifyError(selfmsg):
        
chat.AppendChat(chat.CHAT_TYPE_INFOmsg)

    
    
def ChangePKMode(self):
        if 
not app.IsPressed(app.DIK_LCONTROL):
            return 
None
        
        
if player.GetStatus(player.LEVEL) < constInfo.PVPMODE_PROTECTED_LEVEL:
            
self._GameWindow__NotifyError('You need to have at least Level %d to be able to use the PvP Mode.' constInfo.PVPMODE_PROTECTED_LEVEL)
            return 
None
        
        curTime 
app.GetTime()
        if 
curTime self.lastPKModeSendedTime constInfo.PVPMODE_ACCELKEY_DELAY:
            return 
None
        
        self
.lastPKModeSendedTime curTime
        curPKMode 
player.GetPKMode()
        
nextPKMode curPKMode 1
        
if nextPKMode == player.PK_MODE_PROTECT:
            if 
== player.GetGuildID():
                
chat.AppendChat(chat.CHAT_TYPE_INFO'You cannot activate Guild Mode when you do not belong to a Guild.')
                
nextPKMode 0
            
else:
                
nextPKMode player.PK_MODE_GUILD
        elif nextPKMode 
== player.PK_MODE_MAX_NUM:
            
nextPKMode 0
        
        net
.SendChatPacket('/PKMode ' str(nextPKMode))
        
log('/PKMode ' str(nextPKMode))

    
    
def OnChangePKMode(self):
        
self.interface.OnChangePKMode()
        
        try:
            
self._GameWindow__NotifyError(locale.OPTION_PVPMODE_MESSAGE_DICT[player.GetPKMode()])
        
except KeyError:
            
log('UNKNOWN PVPMode[%d]' player.GetPKMode())

        if 
constInfo.PVPMODE_TEST_ENABLE:
            
curPKMode player.GetPKMode()
            (
alignmentgrade) = chr.testGetPKData()
            
self.pkModeNameDict = {
                
0'PEACE',
                
1'REVENGE',
                
2'FREE',
                
3'PROTECT' }
            
self.testPKMode.SetText('Current PK Mode : ' self.pkModeNameDict.get(curPKMode'UNKNOWN'))
            
self.testAlignment.SetText('Current Alignment : ' str(alignment) + ' (' locale.TITLE_NAME_LIST[grade] + ')')
        

    
    
def StartGame(self):
        
self.RefreshInventory()
        
self.RefreshEquipment()
        
self.RefreshCharacter()
        
self.RefreshSkill()

    
    
def CheckGameButton(self):
        if 
self.interface:
            
self.interface.CheckGameButton()
        

    
    
def RefreshAlignment(self):
        
self.interface.RefreshAlignment()

    
    
def RefreshStatus(self):
        
self.CheckGameButton()
        if 
self.interface:
            
self.interface.RefreshStatus()
        
        if 
self.playerGauge:
            
self.playerGauge.RefreshGauge()
        

    
    
def RefreshStamina(self):
        
self.interface.RefreshStamina()

    
    
def RefreshSkill(self):
        
self.CheckGameButton()
        if 
self.interface:
            
self.interface.RefreshSkill()
        

    
    
def RefreshQuest(self):
        
self.interface.RefreshQuest()

    
    
def RefreshMessenger(self):
        
self.interface.RefreshMessenger()

    
    
def RefreshGuildInfoPage(self):
        
self.interface.RefreshGuildInfoPage()

    
    
def RefreshGuildBoardPage(self):
        
self.interface.RefreshGuildBoardPage()

    
    
def RefreshGuildMemberPage(self):
        
self.interface.RefreshGuildMemberPage()

    
    
def RefreshGuildMemberPageGradeComboBox(self):
        
self.interface.RefreshGuildMemberPageGradeComboBox()

    
    
def RefreshGuildSkillPage(self):
        
self.interface.RefreshGuildSkillPage()

    
    
def RefreshGuildGradePage(self):
        
self.interface.RefreshGuildGradePage()

    
    
def RefreshMobile(self):
        if 
self.interface:
            
self.interface.RefreshMobile()
        

    
    
def OnMobileAuthority(self):
        
self.interface.OnMobileAuthority()

    
    
def OnBlockMode(selfmode):
        
self.interface.OnBlockMode(mode)

    
    
def OpenQuestWindow(selfskinidx):
        
self.interface.OpenQuestWindow(skinidx)

    
    
def AskGuildName(self):
        
guildNameBoard uiCommon.InputDialog()
        
guildNameBoard.SetTitle('Guild name')
        
guildNameBoard.SetAcceptEvent(ui.__mem_func__(self.ConfirmGuildName))
        
guildNameBoard.SetCancelEvent(ui.__mem_func__(self.CancelGuildName))
        
guildNameBoard.Open()
        
self.guildNameBoard guildNameBoard

    
    def ConfirmGuildName
(self):
        
guildName self.guildNameBoard.GetText()
        if 
not guildName:
            return 
None
        
        
if net.IsInsultIn(guildName):
            
self.PopupMessage('Guild name is not valid.')
            return 
None
        
        net
.SendAnswerMakeGuildPacket(guildName)
        
self.guildNameBoard.Close()
        
self.guildNameBoard None
        
return 1

    
    def CancelGuildName
(self):
        
self.guildNameBoard.Close()
        
self.guildNameBoard None
        
return 1

    
    def PopupMessage
(selfmsg):
        
self.stream.popupWindow.Close()
        
self.stream.popupWindow.Open(msg0'OK')

    
    
def OpenRefineDialog(selftargetItemPosnextGradeItemVnumcostprobtype 0):
        
self.interface.OpenRefineDialog(targetItemPosnextGradeItemVnumcostprobtype)

    
    
def AppendMaterialToRefineDialog(selfvnumcount):
        
self.interface.AppendMaterialToRefineDialog(vnumcount)

    
    
def RunUseSkillEvent(selfslotIndexcoolTime):
        
self.interface.OnUseSkill(slotIndexcoolTime)

    
    
def ClearAffects(self):
        
self.affectShower.ClearAffects()

    
    
def SetAffect(selfaffect):
        
self.affectShower.SetAffect(affect)

    
    
def ResetAffect(selfaffect):
        
self.affectShower.ResetAffect(affect)

    
    
def BINARY_NEW_AddAffect(selftypepointIdxvalueduration):
        
self.affectShower.BINARY_NEW_AddAffect(typepointIdxvalueduration)

    
    
def BINARY_NEW_RemoveAffect(selftypepointIdx):
        
self.affectShower.BINARY_NEW_RemoveAffect(typepointIdx)

    
    
def ActivateSkillSlot(selfslotIndex):
        if 
self.interface:
            
self.interface.OnActivateSkill(slotIndex)
        

    
    
def DeactivateSkillSlot(selfslotIndex):
        if 
self.interface:
            
self.interface.OnDeactivateSkill(slotIndex)
        

    
    
def RefreshEquipment(self):
        if 
self.interface:
            
self.interface.RefreshInventory()
        

    
    
def RefreshInventory(self):
        if 
self.interface:
            
self.interface.RefreshInventory()
        

    
    
def RefreshCharacter(self):
        if 
self.interface:
            
self.interface.RefreshCharacter()
        

    
    
def OnGameOver(self):
        
self.CloseTargetBoard()
        
self.OpenRestartDialog()

    
    
def OpenRestartDialog(self):
        
self.interface.OpenRestartDialog()

    
    
def ChangeCurrentSkill(selfskillSlotNumber):
        
self.interface.OnChangeCurrentSkill(skillSlotNumber)

    
    
def SetPCTargetBoard(selfvidname):
        
self.targetBoard.Open(vidname)
        if 
app.IsPressed(app.DIK_LCONTROL):
            if 
not player.IsSameEmpire(vid):
                return 
None
            
            
if player.IsMainCharacterIndex(vid):
                return 
None
            elif chr
.INSTANCE_TYPE_BUILDING == chr.GetInstanceType(vid):
                return 
None
            
            self
.interface.OpenWhisperDialog(name)
        

    
    
def RefreshTargetBoardByVID(selfvid):
        
self.targetBoard.RefreshByVID(vid)

    
    
def RefreshTargetBoardByName(selfname):
        
self.targetBoard.RefreshByName(name)

    
    
def _GameWindow__RefreshTargetBoard(self):
        
self.targetBoard.Refresh()

    
    
def SetHPTargetBoard(selfvidhpPercentage):
        if 
vid != self.targetBoard.GetTargetVID():
            
self.targetBoard.ResetTargetBoard()
            
self.targetBoard.SetEnemyVID(vid)
        
        
self.targetBoard.SetHP(hpPercentage)
        
self.targetBoard.Show()

    
    
def CloseTargetBoardIfDifferent(selfvid):
        if 
vid != self.targetBoard.GetTargetVID():
            
self.targetBoard.Close()
        

    
    
def CloseTargetBoard(self):
        
self.targetBoard.Close()

    
    
def OpenEquipmentDialog(selfvid):
        
self.interface.OpenEquipmentDialog(vid)

    
    
def SetEquipmentDialogItem(selfvidslotIndexvnumcount):
        
self.interface.SetEquipmentDialogItem(vidslotIndexvnumcount)

    
    
def SetEquipmentDialogSocket(selfvidslotIndexsocketIndexvalue):
        
self.interface.SetEquipmentDialogSocket(vidslotIndexsocketIndexvalue)

    
    
def SetEquipmentDialogAttr(selfvidslotIndexattrIndextypevalue):
        
self.interface.SetEquipmentDialogAttr(vidslotIndexattrIndextypevalue)

    
    
def ShowMapName(selfmapNamexy):
        if 
self.mapNameShower:
            
self.mapNameShower.ShowMapName(mapNamexy)
        
        if 
self.interface:
            
self.interface.SetMapName(mapName)
        

    
    
def BINARY_OpenAtlasWindow(self):
        
self.interface.BINARY_OpenAtlasWindow()

    
    
def OnRecvWhisper(selfmodenameline):
        if 
mode == chat.WHISPER_TYPE_GM:
            
self.interface.RegisterGameMasterName(name)
        
        
chat.AppendWhisper(modenameline)
        
self.interface.RecvWhisper(name)

    
    
def OnRecvWhisperSystemMessage(selfmodenameline):
        
chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEMnameline)
        
self.interface.RecvWhisper(name)

    
    
def OnRecvWhisperError(selfmodenameline):
        if 
locale.WHISPER_ERROR.has_key(mode):
            
chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEMnamelocale.WHISPER_ERROR[mode](name))
        else:
            
chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEMname'Whisper Unknown Error(mode=%d, name=%s)' % (modename))
        
self.interface.RecvWhisper(name)

    
    
def RecvWhisper(selfname):
        
self.interface.RecvWhisper(name)

    
    
def OnPickMoney(selfmoney):
        
chat.AppendChat(chat.CHAT_TYPE_INFO' You received %d Gold.' money)

    
    
def OnShopError(selftype):
        
        try:
            
self.PopupMessage(locale.SHOP_ERROR_DICT[type])
        
except KeyError:
            
self.PopupMessage('Unknown Loading Error: %s' type)


    
    
def OnSafeBoxError(self):
        
self.PopupMessage('You entered the wrong password.')

    
    
def OnFishingSuccess(selfisFishfishName):
        
chat.AppendChatWithDelay(chat.CHAT_TYPE_INFOlocale.FISHING_SUCCESS(isFishfishName), 2000)

    
    
def OnFishingNotifyUnknown(self):
        
chat.AppendChat(chat.CHAT_TYPE_INFO' I do not know what I caught.')

    
    
def OnFishingWrongPlace(self):
        
chat.AppendChat(chat.CHAT_TYPE_INFO'I cannot go fishing here.')

    
    
def OnFishingNotify(selfisFishfishName):
        
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.FISHING_NOTIFY(isFishfishName))

    
    
def OnFishingFailure(self):
        
chat.AppendChatWithDelay(chat.CHAT_TYPE_INFO'You lost the Bait.'2000)

    
    
def OnCannotPickItem(self):
        
chat.AppendChat(chat.CHAT_TYPE_INFO'You cannot collect this Item as you did not win it.')

    
    
def OnCannotMining(self):
        
chat.AppendChat(chat.CHAT_TYPE_INFO'You cannot look mine while riding.')

    
    
def OnCannotUseSkill(selfvidtype):
        if 
locale.USE_SKILL_ERROR_TAIL_DICT.has_key(type):
            
textTail.RegisterInfoTail(vidlocale.USE_SKILL_ERROR_TAIL_DICT[type])
        
        if 
locale.USE_SKILL_ERROR_CHAT_DICT.has_key(type):
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.USE_SKILL_ERROR_CHAT_DICT[type])
        

    
    
def OnCannotShotError(selfvidtype):
        
textTail.RegisterInfoTail(vidlocale.SHOT_ERROR_TAIL_DICT.get(type'Unknown Long Distance Attack Error: %s' type))

    
    
def StartPointReset(self):
        
self.interface.OpenPointResetDialog()

    
    
def StartShop(selfvid):
        
self.interface.OpenShopDialog(vid)

    
    
def EndShop(self):
        
self.interface.CloseShopDialog()

    
    
def RefreshShop(self):
        
self.interface.RefreshShopDialog()

    
    
def SetShopSellingPrice(selfPrice):
        
pass

    
    def StartExchange
(self):
        
self.interface.StartExchange()

    
    
def EndExchange(self):
        
self.interface.EndExchange()

    
    
def RefreshExchange(self):
        
self.interface.RefreshExchange()

    
    
def RecvPartyInviteQuestion(selfleaderVIDleaderName):
        
partyInviteQuestionDialog uiCommon.QuestionDialog()
        
partyInviteQuestionDialog.SetText('Do you want to join' ' ' leaderName "'s party?")
        
partyInviteQuestionDialog.SetAcceptEvent(lambda arg TRUEself.AnswerPartyInvite(arg))
        
partyInviteQuestionDialog.SetCancelEvent(lambda arg FALSEself.AnswerPartyInvite(arg))
        
partyInviteQuestionDialog.Open()
        
partyInviteQuestionDialog.partyLeaderVID leaderVID
        self
.partyInviteQuestionDialog partyInviteQuestionDialog

    
    def AnswerPartyInvite
(selfanswer):
        if 
not (self.partyInviteQuestionDialog):
            return 
None
        
        partyLeaderVID 
self.partyInviteQuestionDialog.partyLeaderVID
        distance 
player.GetCharacterDistance(partyLeaderVID)
        if 
distance 0.0 or distance 5000:
            
answer 0
        
        net
.SendPartyInviteAnswerPacket(partyLeaderVIDanswer)
        
self.partyInviteQuestionDialog.Close()
        
self.partyInviteQuestionDialog None

    
    def AddPartyMember
(selfpidname):
        
self.interface.AddPartyMember(pidname)

    
    
def UpdatePartyMemberInfo(selfpid):
        
self.interface.UpdatePartyMemberInfo(pid)

    
    
def RemovePartyMember(selfpid):
        
self.interface.RemovePartyMember(pid)
        
self._GameWindow__RefreshTargetBoard()

    
    
def LinkPartyMember(selfpidvid):
        
self.interface.LinkPartyMember(pidvid)

    
    
def UnlinkPartyMember(selfpid):
        
self.interface.UnlinkPartyMember(pid)

    
    
def UnlinkAllPartyMember(self):
        
self.interface.UnlinkAllPartyMember()

    
    
def ExitParty(self):
        
self.interface.ExitParty()
        
self.RefreshTargetBoardByVID(self.targetBoard.GetTargetVID())

    
    
def ChangePartyParameter(selfdistributionMode):
        
self.interface.ChangePartyParameter(distributionMode)

    
    
def OnMessengerAddFriendQuestion(selfname):
        
messengerAddFriendQuestion uiCommon.QuestionDialog2()
        
messengerAddFriendQuestion.SetText1('%s added you as a friend.' name)
        
messengerAddFriendQuestion.SetText2('Accept?')
        
messengerAddFriendQuestion.SetAcceptEvent(ui.__mem_func__(self.OnAcceptAddFriend))
        
messengerAddFriendQuestion.SetCancelEvent(ui.__mem_func__(self.OnDenyAddFriend))
        
messengerAddFriendQuestion.Open()
        
messengerAddFriendQuestion.name name
        self
.messengerAddFriendQuestion messengerAddFriendQuestion

    
    def OnAcceptAddFriend
(self):
        
name self.messengerAddFriendQuestion.name
        net
.SendChatPacket('/messenger_auth y ' name)
        
self.OnCloseAddFriendQuestionDialog()
        return 
1

    
    def OnDenyAddFriend
(self):
        
name self.messengerAddFriendQuestion.name
        net
.SendChatPacket('/messenger_auth n ' name)
        
self.OnCloseAddFriendQuestionDialog()
        return 
1

    
    def OnCloseAddFriendQuestionDialog
(self):
        
self.messengerAddFriendQuestion.Close()
        
self.messengerAddFriendQuestion None
        
return 1

    
    def OpenSafeboxWindow
(selfsize):
        
self.interface.OpenSafeboxWindow(size)

    
    
def RefreshSafebox(self):
        
self.interface.RefreshSafebox()

    
    
def RefreshSafeboxMoney(self):
        
self.interface.RefreshSafeboxMoney()

    
    
def OpenMallWindow(selfsize):
        
self.interface.OpenMallWindow(size)

    
    
def RefreshMall(self):
        
self.interface.RefreshMall()

    
    
def RecvGuildInviteQuestion(selfguildIDguildName):
        
guildInviteQuestionDialog uiCommon.QuestionDialog()
        
guildInviteQuestionDialog.SetText(guildName 'Do you want to join the Guild?')
        
guildInviteQuestionDialog.SetAcceptEvent(lambda arg TRUEself.AnswerGuildInvite(arg))
        
guildInviteQuestionDialog.SetCancelEvent(lambda arg FALSEself.AnswerGuildInvite(arg))
        
guildInviteQuestionDialog.Open()
        
guildInviteQuestionDialog.guildID guildID
        self
.guildInviteQuestionDialog guildInviteQuestionDialog

    
    def AnswerGuildInvite
(selfanswer):
        if 
not (self.guildInviteQuestionDialog):
            return 
None
        
        guildLeaderVID 
self.guildInviteQuestionDialog.guildID
        net
.SendGuildInviteAnswerPacket(guildLeaderVIDanswer)
        
self.guildInviteQuestionDialog.Close()
        
self.guildInviteQuestionDialog None

    
    def DeleteGuild
(self):
        
self.interface.DeleteGuild()

    
    
def ShowClock(selfsecond):
        
self.interface.ShowClock(second)

    
    
def HideClock(self):
        
self.interface.HideClock()

    
    
def BINARY_ActEmotion(selfemotionIndex):
        if 
self.interface.wndCharacter:
            
self.interface.wndCharacter.ActEmotion(emotionIndex)
        

    
    
def CheckFocus(self):
        if 
== self.IsFocus():
            if 
== self.interface.IsOpenChat():
                
self.interface.ToggleChat()
            
            
self.SetFocus()
        

    
    
def SaveScreen(self):
        (
succeededname) = grp.SaveScreenShotToPath(kScreenshotDirectory '/')
        if 
succeeded:
            
chat.AppendChat(chat.CHAT_TYPE_INFO'Your screenshot has been saved to %s.' name)
        else:
            
chat.AppendChat(chat.CHAT_TYPE_INFO'Saving of Screenshot failed.')

    
    
def ShowConsole(self):
        if 
self.consoleEnable:
            
self.console.OpenWindow()
        

    
    
def ShowName(self):
        
self.ShowNameFlag 1
        self
.playerGauge.EnableShowAlways()
        
player.SetQuickPage(self.quickSlotPageIndex 1)

    
    
def _GameWindow__IsShowName(self):
        if 
systemSetting.IsAlwaysShowName():
            return 
1
        
        
if self.ShowNameFlag:
            return 
1
        
        
return 0

    
    def HideName
(self):
        
self.ShowNameFlag 0
        self
.playerGauge.DisableShowAlways()
        
player.SetQuickPage(self.quickSlotPageIndex)

    
    
def ShowMouseImage(self):
        
self.interface.ShowMouseImage()

    
    
def HideMouseImage(self):
        
self.interface.HideMouseImage()

    
    
def StartAttack(self):
        
player.SetAttackKeyState(1)

    
    
def EndAttack(self):
        
player.SetAttackKeyState(0)

    
    
def MoveUp(self):
        
player.SetSingleDIKKeyState(app.DIK_UP1)

    
    
def MoveDown(self):
        
player.SetSingleDIKKeyState(app.DIK_DOWN1)

    
    
def MoveLeft(self):
        
player.SetSingleDIKKeyState(app.DIK_LEFT1)

    
    
def MoveRight(self):
        
player.SetSingleDIKKeyState(app.DIK_RIGHT1)

    
    
def StopUp(self):
        
player.SetSingleDIKKeyState(app.DIK_UP0)

    
    
def StopDown(self):
        
player.SetSingleDIKKeyState(app.DIK_DOWN0)

    
    
def StopLeft(self):
        
player.SetSingleDIKKeyState(app.DIK_LEFT0)

    
    
def StopRight(self):
        
player.SetSingleDIKKeyState(app.DIK_RIGHT0)

    
    
def PickUpItem(self):
        
player.PickCloseItem()

    
    
def OnKeyDown(selfkey):
        if 
self.interface.wndWeb and self.interface.wndWeb.IsShow():
            return 
None
        
        constInfo
.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(0)
        
        try:
            
self.onPressKeyDict[key]()
        
except KeyError:
            
pass
        except
:
            
raise 

        
return 1

    
    def OnKeyUp
(selfkey):
        
        try:
            
self.onClickKeyDict[key]()
        
except KeyError:
            
pass
        except
:
            
raise 

        
return 1

    
    def OnMouseLeftButtonDown
(self):
        if 
self.interface.BUILD_OnMouseLeftButtonDown():
            return 
None
        
        
if mouseModule.mouseController.isAttached():
            
self.CheckFocus()
        else:
            
hyperlink ui.GetHyperlink()
            if 
hyperlink:
                return 
None
            
else:
                
self.CheckFocus()
                
player.SetMouseState(player.MBT_LEFTplayer.MBS_PRESS)
        return 
1

    
    def OnMouseLeftButtonUp
(self):
        if 
self.interface.BUILD_OnMouseLeftButtonUp():
            return 
None
        
        
if mouseModule.mouseController.isAttached():
            
attachedType mouseModule.mouseController.GetAttachedType()
            
attachedItemIndex mouseModule.mouseController.GetAttachedItemIndex()
            
attachedItemSlotPos mouseModule.mouseController.GetAttachedSlotNumber()
            
attachedItemCount mouseModule.mouseController.GetAttachedItemCount()
            if 
player.SLOT_TYPE_QUICK_SLOT == attachedType:
                
player.RequestDeleteGlobalQuickSlot(attachedItemSlotPos)
            
elif player.SLOT_TYPE_INVENTORY == attachedType:
                if 
player.ITEM_MONEY == attachedItemIndex:
                    
self._GameWindow__PutMoney(attachedTypeattachedItemCountself.PickingCharacterIndex)
                else:
                    
self._GameWindow__PutItem(attachedTypeattachedItemIndexattachedItemSlotPosattachedItemCountself.PickingCharacterIndex)
            
            
mouseModule.mouseController.DeattachObject()
        else:
            
hyperlink ui.GetHyperlink()
            if 
hyperlink:
                if 
app.IsPressed(app.DIK_LALT):
                    
link chat.GetLinkFromHyperlink(hyperlink)
                    
ime.PasteString(link)
                else:
                    
self.interface.MakeHyperlinkTooltip(hyperlink)
                return 
None
            
else:
                
player.SetMouseState(player.MBT_LEFTplayer.MBS_CLICK)
        return 
1

    
    def _GameWindow__PutItem
(selfattachedTypeattachedItemIndexattachedItemSlotPosattachedItemCountdstChrID):
        if 
chr.HasInstance(self.PickingCharacterIndex):
            if 
player.GetMainCharacterIndex() == dstChrID:
                return 
None
            elif player
.IsEquipmentSlot(attachedItemSlotPos):
                
self.stream.popupWindow.Close()
                
self.stream.popupWindow.Open('You cannot exchange equipped Items.'0'OK')
            
elif chr.IsNPC(dstChrID):
                
net.SendGiveItemPacket(dstChrIDattachedItemSlotPosattachedItemCount)
            else:
                
item.SelectItem(player.GetItemIndex(attachedItemSlotPos))
                if 
constInfo.IsItemUnsafeToTrade(attachedItemSlotPos) or item.IsAntiFlag(item.ANTIFLAG_GIVE):
                    
chat.AppendChat(chat.CHAT_TYPE_INFO'You cannot trade this Item.')
                else:
                    
net.SendExchangeStartPacket(dstChrID)
                    
net.SendExchangeItemAddPacket(attachedItemSlotPos0)
        else:
            
self._GameWindow__DropItem(attachedTypeattachedItemIndexattachedItemSlotPosattachedItemCount)

    
    
def _GameWindow__PutMoney(selfattachedTypeattachedMoneydstChrID):
        if 
== chr.HasInstance(dstChrID) and player.GetMainCharacterIndex() != dstChrID:
            
net.SendExchangeStartPacket(dstChrID)
            
net.SendExchangeElkAddPacket(attachedMoney)
        else:
            
self._GameWindow__DropMoney(attachedTypeattachedMoney)

    
    
def _GameWindow__DropMoney(selfattachedTypeattachedMoney):
        if 
uiPrivateShopBuilder.IsBuildingPrivateShop():
            
chat.AppendChat(chat.CHAT_TYPE_INFO'You cannot drop an equipped Item if you open a private shop.')
            return 
None
        
        
if attachedMoney >= 1000:
            
self.stream.popupWindow.Close()
            
self.stream.popupWindow.Open('You can drop a maximum of 1000 Gold.'0'OK')
            return 
None
        
        itemDropQuestionDialog 
uiCommon.QuestionDialog()
        
itemDropQuestionDialog.SetText('Do you want to drop %d Gold?' attachedMoney)
        
itemDropQuestionDialog.SetAcceptEvent(lambda arg TRUEself.RequestDropItem(arg))
        
itemDropQuestionDialog.SetCancelEvent(lambda arg FALSEself.RequestDropItem(arg))
        
itemDropQuestionDialog.Open()
        
itemDropQuestionDialog.dropType attachedType
        itemDropQuestionDialog
.dropCount attachedMoney
        itemDropQuestionDialog
.dropNumber player.ITEM_MONEY
        self
.itemDropQuestionDialog itemDropQuestionDialog

    
    def _GameWindow__DropItem
(selfattachedTypeattachedItemIndexattachedItemSlotPosattachedItemCount):
        if 
uiPrivateShopBuilder.IsBuildingPrivateShop():
            
chat.AppendChat(chat.CHAT_TYPE_INFO'You cannot drop an equipped Item if you open a private shop.')
            return 
None
        
        
if player.IsEquipmentSlot(attachedItemSlotPos):
            
self.stream.popupWindow.Close()
            
self.stream.popupWindow.Open('You cannot drop an equipped Item.'0'OK')
        
elif not constInfo.IsItemUnsafeToTrade(attachedItemSlotPos):
            
dropItemIndex player.GetItemIndex(attachedItemSlotPos)
            
item.SelectItem(dropItemIndex)
            
dropItemName item.GetItemName()
            
questionText locale.HOW_MANY_ITEM_DO_YOU_DROP(dropItemNameattachedItemCount)
            
itemDropQuestionDialog uiCommon.QuestionDialog()
            
itemDropQuestionDialog.SetText(questionText)
            
itemDropQuestionDialog.SetAcceptEvent(lambda arg TRUEself.RequestDropItem(arg))
            
itemDropQuestionDialog.SetCancelEvent(lambda arg FALSEself.RequestDropItem(arg))
            
itemDropQuestionDialog.Open()
            
itemDropQuestionDialog.dropType attachedType
            itemDropQuestionDialog
.dropNumber attachedItemSlotPos
            itemDropQuestionDialog
.dropCount attachedItemCount
            self
.itemDropQuestionDialog itemDropQuestionDialog
            constInfo
.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(1)
        

    
    
def RequestDropItem(selfanswer):
        if 
not (self.itemDropQuestionDialog):
            return 
None
        
        
if answer:
            
dropType self.itemDropQuestionDialog.dropType
            dropCount 
self.itemDropQuestionDialog.dropCount
            dropNumber 
self.itemDropQuestionDialog.dropNumber
            
if player.SLOT_TYPE_INVENTORY == dropType:
                if 
dropNumber == player.ITEM_MONEY:
                    
net.SendGoldDropPacketNew(dropCount)
                    
snd.PlaySound('sound/ui/money.wav')
                else:
                    
self._GameWindow__SendDropItemPacket(dropNumberdropCount)
            
        
        
self.itemDropQuestionDialog.Close()
        
self.itemDropQuestionDialog None
        constInfo
.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(0)

    
    
def _GameWindow__SendDropItemPacket(selfitemVNumitemCount):
        if 
uiPrivateShopBuilder.IsBuildingPrivateShop():
            
chat.AppendChat(chat.CHAT_TYPE_INFO'You cannot drop an equipped Item if you open a private shop.')
            return 
None
        
        net
.SendItemDropPacketNew(itemVNumitemCount)

    
    
def OnMouseRightButtonDown(self):
        
self.CheckFocus()
        if 
== mouseModule.mouseController.isAttached():
            
mouseModule.mouseController.DeattachObject()
        else:
            
player.SetMouseState(player.MBT_RIGHTplayer.MBS_PRESS)
        return 
1

    
    def OnMouseRightButtonUp
(self):
        if 
== mouseModule.mouseController.isAttached():
            return 
1
        
        player
.SetMouseState(player.MBT_RIGHTplayer.MBS_CLICK)
        return 
1

    
    def OnMouseMiddleButtonDown
(self):
        
player.SetMouseMiddleButtonState(player.MBS_PRESS)

    
    
def OnMouseMiddleButtonUp(self):
        
player.SetMouseMiddleButtonState(player.MBS_CLICK)

    
    
def OnUpdate(self):
        
app.UpdateGame()
        if 
self.mapNameShower.IsShow():
            
self.mapNameShower.Update()
        
        if 
self.isShowDebugInfo:
            
self.UpdateDebugInfo()
        
        if 
self.enableXMasBoom:
            
self._GameWindow__XMasBoom_Update()
        
        
self.interface.BUILD_OnUpdate()

    
    
def UpdateDebugInfo(self):
        (
xyz) = player.GetMainCharacterPosition()
        
nUpdateTime app.GetUpdateTime()
        
nUpdateFPS app.GetUpdateFPS()
        
nRenderFPS app.GetRenderFPS()
        
nFaceCount app.GetFaceCount()
        
fFaceSpeed app.GetFaceSpeed()
        
nST background.GetRenderShadowTime()
        (
fAveRTnCurRT) = app.GetRenderTime()
        (
iNumfFogStartfFogEndfFarCilp) = background.GetDistanceSetInfo()
        (
iPatchiSplatfSplatRatiosTextureNum) = background.GetRenderedSplatNum()
        if 
iPatch == 0:
            
iPatch 1
        
        self
.PrintCoord.SetText('Coordinate: %.2f %.2f %.2f ATM: %d' % (xyzapp.GetAvailableTextureMemory() / 1048576))
        
self.FrameRate.SetText('UFPS: %3d UT: %3d FS %.2f' % (nUpdateFPSnUpdateTimefFaceSpeed))
        if 
fAveRT 1.0:
            
self.Pitch.SetText('RFPS: %3d RT:%.2f(%3d) FC: %d(%.2f) ' % (nRenderFPSfAveRTnCurRTnFaceCountnFaceCount fAveRT))
        
        
self.Splat.SetText('PATCH: %d SPLAT: %d BAD(%.2f)' % (iPatchiSplatfSplatRatio))
        
self.ViewDistance.SetText('Num : %d, FS : %f, FE : %f, FC : %f' % (iNumfFogStartfFogEndfFarCilp))

    
    
def OnRender(self):
        
app.RenderGame()
        if 
self.console.Console.collision:
            
background.RenderCollision()
            
chr.RenderCollision()
        
        (
xy) = app.GetCursorPosition()
        
textTail.UpdateAllTextTail()
        if 
== wndMgr.IsPickedWindow(self.hWnd):
            
self.PickingCharacterIndex chr.Pick()
            if -
!= self.PickingCharacterIndex:
                
textTail.ShowCharacterTextTail(self.PickingCharacterIndex)
            
            if 
!= self.targetBoard.GetTargetVID():
                
textTail.ShowCharacterTextTail(self.targetBoard.GetTargetVID())
            
            if 
not self._GameWindow__IsShowName():
                
self.PickingItemIndex item.Pick()
                if -
!= self.PickingItemIndex:
                    
textTail.ShowItemTextTail(self.PickingItemIndex)
                
            
        
        if 
self._GameWindow__IsShowName():
            
textTail.ShowAllTextTail()
            
self.PickingItemIndex textTail.Pick(xy)
        
        
textTail.UpdateShowingTextTail()
        
textTail.ArrangeTextTail()
        if -
!= self.PickingItemIndex:
            
textTail.SelectItemName(self.PickingItemIndex)
        
        
grp.PopState()
        
grp.SetInterfaceRenderState()
        
textTail.Render()
        
textTail.HideAllTextTail()

    
    
def OnPressEscapeKey(self):
        if 
app.TARGET == app.GetCursor():
            
app.SetCursor(app.NORMAL)
        
elif 1 == mouseModule.mouseController.isAttached():
            
mouseModule.mouseController.DeattachObject()
        else:
            
self.interface.OpenSystemDialog()
        return 
1

    
    def OnIMEReturn
(self):
        if 
app.IsPressed(app.DIK_LSHIFT):
            
self.interface.OpenWhisperDialogWithoutTarget()
        else:
            
self.interface.ToggleChat()
        return 
1

    
    def OnPressExitKey
(self):
        
self.interface.ToggleSystemDialog()
        return 
1

    
    def BINARY_LoverInfo
(selfnamelovePoint):
        if 
self.interface.wndMessenger:
            
self.interface.wndMessenger.OnAddLover(namelovePoint)
        
        if 
self.affectShower:
            
self.affectShower.SetLoverInfo(namelovePoint)
        

    
    
def BINARY_UpdateLovePoint(selflovePoint):
        if 
self.interface.wndMessenger:
            
self.interface.wndMessenger.OnUpdateLovePoint(lovePoint)
        
        if 
self.affectShower:
            
self.affectShower.OnUpdateLovePoint(lovePoint)
        

    
    
def BINARY_OnQuestConfirm(selfmsgtimeoutpid):
        
confirmDialog uiCommon.QuestionDialogWithTimeLimit()
        
confirmDialog.Open(msgtimeout)
        
confirmDialog.SetAcceptEvent(lambda answer TRUEpid pid: if not net.SendQuestConfirmPacket(answerpid):
passself.confirmDialog.Hide())
        
confirmDialog.SetCancelEvent(lambda answer FALSEpid pid: if not net.SendQuestConfirmPacket(answerpid):
passself.confirmDialog.Hide())
        
self.confirmDialog confirmDialog

    
    def BINARY_Cube_Open
(self):
        
self.interface.OpenCubeWindow()

    
    
def BINARY_Cube_Close(self):
        
self.interface.CloseCubeWindow()

    
    
def BINARY_Cube_Succeed(selfitemVnumcount):
        
log('CUBE_SUCCESS')
        
self.interface.SucceedCubeWork(itemVnumcount)

    
    
def BINARY_Cube_Failed(self):
        
log('CUBE_FAIL')

    
    
def BINARY_SetBigMessage(selfmessage):
        
self.interface.bigBoard.SetTip(message)

    
    
def BINARY_SetTipMessage(selfmessage):
        
self.interface.tipBoard.SetTip(message)

    
    
def BINARY_AppendNotifyMessage(selftype):
        if 
type not in locale.NOTIFY_MESSAGE:
            return 
None
        
        chat
.AppendChat(chat.CHAT_TYPE_INFOlocale.NOTIFY_MESSAGE[type])

    
    
def BINARY_Guild_EnterGuildArea(selfareaID):
        
self.interface.BULID_EnterGuildArea(areaID)

    
    
def BINARY_Guild_ExitGuildArea(selfareaID):
        
self.interface.BULID_ExitGuildArea(areaID)

    
    
def BINARY_GuildWar_OnSendDeclare(selfguildID):
        
pass

    
    def BINARY_GuildWar_OnRecvDeclare
(selfguildIDwarType):
        
mainCharacterName player.GetMainCharacterName()
        
masterName guild.GetGuildMasterName()
        if 
mainCharacterName == masterName:
            
self._GameWindow__GuildWar_OpenAskDialog(guildIDwarType)
        

    
    
def BINARY_GuildWar_OnRecvPoint(selfgainGuildIDopponentGuildIDpoint):
        
self.interface.OnRecvGuildWarPoint(gainGuildIDopponentGuildIDpoint)

    
    
def BINARY_GuildWar_OnStart(selfguildSelfguildOpp):
        
self.interface.OnStartGuildWar(guildSelfguildOpp)

    
    
def BINARY_GuildWar_OnEnd(selfguildSelfguildOpp):
        
self.interface.OnEndGuildWar(guildSelfguildOpp)

    
    
def BINARY_BettingGuildWar_SetObserverMode(selfisEnable):
        
self.interface.BINARY_SetObserverMode(isEnable)

    
    
def BINARY_BettingGuildWar_UpdateObserverCount(selfobserverCount):
        
self.interface.wndMiniMap.UpdateObserverCount(observerCount)

    
    
def _GameWindow__GuildWar_UpdateMemberCount(selfguildID1memberCount1guildID2memberCount2observerCount):
        
guildID1 int(guildID1)
        
guildID2 int(guildID2)
        
memberCount1 int(memberCount1)
        
memberCount2 int(memberCount2)
        
observerCount int(observerCount)
        
self.interface.UpdateMemberCount(guildID1memberCount1guildID2memberCount2)
        
self.interface.wndMiniMap.UpdateObserverCount(observerCount)

    
    
def _GameWindow__GuildWar_OpenAskDialog(selfguildIDwarType):
        
guildName guild.GetGuildName(guildID)
        if 
'Noname' == guildName:
            return 
None
        
        import uiGuild
        questionDialog 
uiGuild.AcceptGuildWarDialog()
        
questionDialog.SAFE_SetAcceptEvent(self._GameWindow__GuildWar_OnAccept)
        
questionDialog.SAFE_SetCancelEvent(self._GameWindow__GuildWar_OnDecline)
        
questionDialog.Open(guildNamewarType)
        
self.guildWarQuestionDialog questionDialog

    
    def _GameWindow__GuildWar_CloseAskDialog
(self):
        
self.guildWarQuestionDialog.Close()
        
self.guildWarQuestionDialog None

    
    def _GameWindow__GuildWar_OnAccept
(self):
        
guildName self.guildWarQuestionDialog.GetGuildName()
        
net.SendChatPacket('/war ' guildName)
        
self._GameWindow__GuildWar_CloseAskDialog()
        return 
1

    
    def _GameWindow__GuildWar_OnDecline
(self):
        
guildName self.guildWarQuestionDialog.GetGuildName()
        
net.SendChatPacket('/nowar ' guildName)
        
self._GameWindow__GuildWar_CloseAskDialog()
        return 
1

    
    def _GameWindow__ServerCommand_Build
(self):
        
serverCommandList = {
            
'ConsoleEnable'self._GameWindow__Console_Enable,
            
'DayMode'self._GameWindow__DayMode_Update,
            
'PRESERVE_DayMode'self._GameWindow__PRESERVE_DayMode_Update,
            
'CloseRestartWindow'self._GameWindow__RestartDialog_Close,
            
'OpenPrivateShop'self._GameWindow__PrivateShop_Open,
            
'PartyHealReady'self.PartyHealReady,
            
'ShowMeSafeboxPassword'self.AskSafeboxPassword,
            
'CloseSafebox'self.CommandCloseSafebox,
            
'CloseMall'self.CommandCloseMall,
            
'ShowMeMallPassword'self.AskMallPassword,
            
'item_mall'self._GameWindow__ItemMall_Open,
            
'RefineSuceeded'self.RefineSuceededMessage,
            
'RefineFailed'self.RefineFailedMessage,
            
'xmas_snow'self._GameWindow__XMasSnow_Enable,
            
'xmas_boom'self._GameWindow__XMasBoom_Enable,
            
'xmas_song'self._GameWindow__XMasSong_Enable,
            
'xmas_tree'self._GameWindow__XMasTree_Enable,
            
'newyear_boom'self._GameWindow__XMasBoom_Enable,
            
'PartyRequest'self._GameWindow__PartyRequestQuestion,
            
'PartyRequestDenied'self._GameWindow__PartyRequestDenied,
            
'horse_state'self._GameWindow__Horse_UpdateState,
            
'hide_horse_state'self._GameWindow__Horse_HideState,
            
'WarUC'self._GameWindow__GuildWar_UpdateMemberCount,
            
'test_server'self._GameWindow__EnableTestServerFlag,
            
'mall'self._GameWindow__InGameShop_Show,
            
'lover_login'self._GameWindow__LoginLover,
            
'lover_logout'self._GameWindow__LogoutLover,
            
'lover_near'self._GameWindow__LoverNear,
            
'lover_far'self._GameWindow__LoverFar,
            
'lover_divorce'self._GameWindow__LoverDivorce,
            
'PlayMusic'self._GameWindow__PlayMusic,
            
'MyShopPriceList'self._GameWindow__PrivateShop_PriceList }
        
self.serverCommander stringCommander.Analyzer()
        for 
serverCommandItem in serverCommandList.items():
            
self.serverCommander.SAFE_RegisterCallBack(serverCommandItem[0], serverCommandItem[1])

    
    
def BINARY_ServerCommand_Run(selfline):
        
        try:
            
log('BINARY_ServerCommand_Run ' line)
            return 
self.serverCommander.Run(line)
        
except RuntimeError:
            
msg None
            dbg
.TraceError(msg)
            return 
0


    
    def _GameWindow__ProcessPreservedServerCommand
(self):
        
        try:
            
command net.GetPreservedServerCommand()
            while 
command:
                
log(' __ProcessPreservedServerCommand ' command)
                
self.serverCommander.Run(command)
                
command net.GetPreservedServerCommand()
        
except RuntimeError:
            
msg None
            dbg
.TraceError(msg)
            return 
0


    
    def PartyHealReady
(self):
        
self.interface.PartyHealReady()

    
    
def AskSafeboxPassword(self):
        
self.interface.AskSafeboxPassword()

    
    
def AskMallPassword(self):
        
self.interface.AskMallPassword()

    
    
def _GameWindow__ItemMall_Open(self):
        
self.interface.OpenItemMall()

    
    
def CommandCloseMall(self):
        
self.interface.CommandCloseMall()

    
    
def RefineSuceededMessage(self):
        
snd.PlaySound('sound/ui/make_soket.wav')
        
self.PopupMessage('The advancement of the Item was successful.')

    
    
def RefineFailedMessage(self):
        
snd.PlaySound('sound/ui/jaeryun_fail.wav')
        
self.PopupMessage('You failed.')

    
    
def CommandCloseSafebox(self):
        
self.interface.CommandCloseSafebox()

    
    
def _GameWindow__PrivateShop_PriceList(selfitemVNumitemPrice):
        
uiPrivateShopBuilder.SetPrivateShopItemPrice(itemVNumitemPrice)

    
    
def _GameWindow__Horse_HideState(self):
        
self.affectShower.SetHorseState(000)

    
    
def _GameWindow__Horse_UpdateState(selflevelhealthbattery):
        
self.affectShower.SetHorseState(int(level), int(health), int(battery))

    
    
def _GameWindow__IsXMasMap(self):
        
mapDict = ('metin2_map_n_flame_01''metin2_map_n_desert_01''metin2_map_spiderdungeon''metin2_map_deviltower1''season1/metin2_map_spiderdungeon_02''metin2_map_spiderdungeon_03''metin2_map_monkeydungeon''metin2_map_monkeydungeon_02''metin2_map_devilsCatacomb''metin2_map_skipia_dungeon_boss''metin2_map_skipia_dungeon_01''metin2_map_skipia_dungeon_02''metin2_map_monkeydungeon_03')
        if 
background.GetCurrentMapName() in mapDict:
            return 
0
        
        
return 1

    
    def _GameWindow__XMasSnow_Enable
(selfmode):
        
self._GameWindow__XMasSong_Enable(mode)
        if 
'1' == mode:
            if 
not self._GameWindow__IsXMasMap():
                return 
None
            
            log
('XMAS_SNOW ON')
            
background.EnableSnow(1)
        else:
            
log('XMAS_SNOW OFF')
            
background.EnableSnow(0)

    
    
def _GameWindow__XMasBoom_Enable(selfmode):
        if 
'1' == mode:
            if 
not self._GameWindow__IsXMasMap():
                return 
None
            
            log
('XMAS_BOOM ON')
            
self._GameWindow__DayMode_Update('dark')
            
self.enableXMasBoom 1
            self
.startTimeXMasBoom app.GetTime()
        else:
            
log('XMAS_BOOM OFF')
            
self._GameWindow__DayMode_Update('light')
            
self.enableXMasBoom 0

    
    def _GameWindow__XMasTree_Enable
(selfgrade):
        
log('XMAS_TREE ' grade)
        
background.SetXMasTree(int(grade))

    
    
def _GameWindow__XMasSong_Enable(selfmode):
        if 
'1' == mode:
            
log('XMAS_SONG ON')
            
XMAS_BGM 'xmas.mp3'
            
if app.IsExistFile('BGM/' XMAS_BGM) == 1:
                if 
musicInfo.fieldMusic != '':
                    
snd.FadeOutMusic('BGM/' musicInfo.fieldMusic)
                
                
musicInfo.fieldMusic XMAS_BGM
                snd
.FadeInMusic('BGM/' musicInfo.fieldMusic)
            
        else:
            
log('XMAS_SONG OFF')
            if 
musicInfo.fieldMusic != '':
                
snd.FadeOutMusic('BGM/' musicInfo.fieldMusic)
            
            
musicInfo.fieldMusic musicInfo.METIN2THEMA
            snd
.FadeInMusic('BGM/' musicInfo.fieldMusic)

    
    
def _GameWindow__RestartDialog_Close(self):
        
self.interface.CloseRestartDialog()

    
    
def _GameWindow__Console_Enable(self):
        
constInfo.CONSOLE_ENABLE 1
        self
.consoleEnable 1
        app
.EnableSpecialCameraMode()
        
ui.EnablePaste(1)

    
    
def _GameWindow__PrivateShop_Open(self):
        
self.interface.OpenPrivateShopInputNameDialog()

    
    
def BINARY_PrivateShop_Appear(selfvidtext):
        
self.interface.AppearPrivateShop(vidtext)

    
    
def BINARY_PrivateShop_Disappear(selfvid):
        
self.interface.DisappearPrivateShop(vid)

    
    
def _GameWindow__PRESERVE_DayMode_Update(selfmode):
        if 
'light' == mode:
            
background.SetEnvironmentData(0)
        
elif 'dark' == mode:
            if 
not self._GameWindow__IsXMasMap():
                return 
None
            
            background
.RegisterEnvironmentData(1constInfo.ENVIRONMENT_NIGHT)
            
background.SetEnvironmentData(1)
        

    
    
def _GameWindow__DayMode_Update(selfmode):
        if 
'light' == mode:
            
self.curtain.SAFE_FadeOut(self._GameWindow__DayMode_OnCompleteChangeToLight)
        
elif 'dark' == mode:
            if 
not self._GameWindow__IsXMasMap():
                return 
None
            
            self
.curtain.SAFE_FadeOut(self._GameWindow__DayMode_OnCompleteChangeToDark)
        

    
    
def _GameWindow__DayMode_OnCompleteChangeToLight(self):
        
background.SetEnvironmentData(0)
        
self.curtain.FadeIn()

    
    
def _GameWindow__DayMode_OnCompleteChangeToDark(self):
        
background.RegisterEnvironmentData(1constInfo.ENVIRONMENT_NIGHT)
        
background.SetEnvironmentData(1)
        
self.curtain.FadeIn()

    
    
def _GameWindow__XMasBoom_Update(self):
        
self.BOOM_DATA_LIST = ((25), (52), (73), (103), (205))
        if 
self.indexXMasBoom >= len(self.BOOM_DATA_LIST):
            return 
None
        
        boomTime 
self.BOOM_DATA_LIST[self.indexXMasBoom][0]
        
boomCount self.BOOM_DATA_LIST[self.indexXMasBoom][1]
        if 
app.GetTime() - self.startTimeXMasBoom boomTime:
            
self.indexXMasBoom += 1
            
for i in xrange(boomCount):
                
self._GameWindow__XMasBoom_Boom()
        

    
    
def _GameWindow__XMasBoom_Boom(self):
        (
xyz) = player.GetMainCharacterPosition()
        
randX app.GetRandom(-150150)
        
randY app.GetRandom(-150150)
        
snd.PlaySound3D(randX, -randYz'sound/common/etc/salute.mp3')

    
    
def _GameWindow__PartyRequestQuestion(selfvid):
        
vid int(vid)
        
partyRequestQuestionDialog uiCommon.QuestionDialog()
        
partyRequestQuestionDialog.SetText(chr.GetNameByVID(vid) + '%s invited you to the party.')
        
partyRequestQuestionDialog.SetAcceptText('Accept')
        
partyRequestQuestionDialog.SetCancelText('Decline')
        
partyRequestQuestionDialog.SetAcceptEvent(lambda arg TRUEself._GameWindow__AnswerPartyRequest(arg))
        
partyRequestQuestionDialog.SetCancelEvent(lambda arg FALSEself._GameWindow__AnswerPartyRequest(arg))
        
partyRequestQuestionDialog.Open()
        
partyRequestQuestionDialog.vid vid
        self
.partyRequestQuestionDialog partyRequestQuestionDialog

    
    def _GameWindow__AnswerPartyRequest
(selfanswer):
        if 
not (self.partyRequestQuestionDialog):
            return 
None
        
        vid 
self.partyRequestQuestionDialog.vid
        
if answer:
            
net.SendChatPacket('/party_request_accept ' str(vid))
        else:
            
net.SendChatPacket('/party_request_deny ' str(vid))
        
self.partyRequestQuestionDialog.Close()
        
self.partyRequestQuestionDialog None

    
    def _GameWindow__PartyRequestDenied
(self):
        
self.PopupMessage('You discarded the invitation into the group..')

    
    
def _GameWindow__EnableTestServerFlag(self):
        
app.EnableTestServerFlag()

    
    
def _GameWindow__InGameShop_Show(selfurl):
        if 
constInfo.IN_GAME_SHOP_ENABLE:
            
self.interface.OpenWebWindow(url)
        

    
    
def _GameWindow__LoginLover(self):
        if 
self.interface.wndMessenger:
            
self.interface.wndMessenger.OnLoginLover()
        

    
    
def _GameWindow__LogoutLover(self):
        if 
self.interface.wndMessenger:
            
self.interface.wndMessenger.OnLogoutLover()
        
        if 
self.affectShower:
            
self.affectShower.HideLoverState()
        

    
    
def _GameWindow__LoverNear(self):
        if 
self.affectShower:
            
self.affectShower.ShowLoverState()
        

    
    
def _GameWindow__LoverFar(self):
        if 
self.affectShower:
            
self.affectShower.HideLoverState()
        

    
    
def _GameWindow__LoverDivorce(self):
        if 
self.interface.wndMessenger:
            
self.interface.wndMessenger.ClearLoverInfo()
        
        if 
self.affectShower:
            
self.affectShower.ClearLoverState()
        

    
    
def _GameWindow__PlayMusic(selfflagfilename):
        
flag int(flag)
        if 
flag:
            
snd.FadeOutAllMusic()
            
musicInfo.SaveLastPlayFieldMusic()
            
snd.FadeInMusic('BGM/' filename)
        else:
            
snd.FadeOutAllMusic()
            
musicInfo.LoadLastPlayFieldMusic()
            
snd.FadeInMusic('BGM/' musicInfo.fieldMusic
07/27/2013 15:16 mamAmok#88
Quote:
Originally Posted by Ocelot2606 View Post
Geht sehr wohl hier haste die ganze

PHP Code:
# Source Generated by .MaisKolben™-Decompyler
# File: game.pyc

import os
import app
import dbg
import grp
import item
import background
import chr
import chrmgr
import player
import snd
import chat
import textTail
import snd
import net
import effect
import wndMgr
import fly
import systemSetting
import quest
import guild
import skill
import messenger
import locale
import constInfo
import exchange
import ime
import ui
import uiCommon
import uiPhaseCurtain
import uiMapNameShower
import uiAffectShower
import uiPlayerGauge
import uiCharacter
import uiTarget
import uiPrivateShopBuilder
import mouseModule
import consoleModule
import locale
import playerSettingModule
import interfaceModule
import musicInfo
import stringCommander
from _weakref import proxy
kScreenshotDirectory 
'screenshot'
cameraDistance 1550.0
cameraPitch 
27.0
cameraRotation 
0.0
cameraHeight 
100.0
testAlignment 
0

class GameWindow(ui.ScriptWindow):
    
    
def __init__(selfstream):
        
ui.ScriptWindow.__init__(self'GAME')
        
self.SetWindowName('game')
        
net.SetPhaseWindow(net.PHASE_WINDOW_GAMEself)
        
player.SetGameWindow(self)
        
self.quickSlotPageIndex 0
        self
.lastPKModeSendedTime 0
        self
.pressNumber None
        self
.guildWarQuestionDialog None
        self
.stream stream
        self
.interface = interfaceModule.Interface()
        
self.interface.MakeInterface()
        
self.interface.ShowDefaultWindows()
        
self.curtain uiPhaseCurtain.PhaseCurtain()
        
self.curtain.speed 0.029999999999999999
        self
.curtain.Hide()
        
self.targetBoard uiTarget.TargetBoard()
        
self.targetBoard.SetWhisperEvent(ui.__mem_func__(self.interface.OpenWhisperDialog))
        
self.targetBoard.Hide()
        
self.console consoleModule.ConsoleWindow()
        
self.console.BindGameClass(self)
        
self.console.SetConsoleSize(wndMgr.GetScreenWidth(), 200)
        
self.console.Hide()
        
self.mapNameShower uiMapNameShower.MapNameShower()
        
self.affectShower uiAffectShower.AffectShower()
        
self.playerGauge uiPlayerGauge.PlayerGauge(self)
        
self.playerGauge.Hide()
        
self._GameWindow__SetQuickSlotMode()
        
self._GameWindow__ServerCommand_Build()
        
self._GameWindow__ProcessPreservedServerCommand()

    
    
def __del__(self):
        
player.SetGameWindow(0)
        
net.ClearPhaseWindow(net.PHASE_WINDOW_GAMEself)
        
ui.ScriptWindow.__del__(self)

    
    
def Open(self):
        
app.SetFrameSkip(1)
        
self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())
        
self.quickSlotPageIndex 0
        self
.PickingCharacterIndex = -1
        self
.PickingItemIndex = -1
        self
.consoleEnable 0
        self
.isShowDebugInfo 0
        self
.ShowNameFlag 0
        self
.enableXMasBoom 0
        self
.startTimeXMasBoom 0.0
        self
.indexXMasBoom 0
        app
.SetCamera(cameraDistancecameraPitchcameraRotationcameraHeight)
        
constInfo.SET_DEFAULT_CAMERA_MAX_DISTANCE()
        
constInfo.SET_DEFAULT_CHRNAME_COLOR()
        
constInfo.SET_DEFAULT_FOG_LEVEL()
        
constInfo.SET_DEFAULT_CONVERT_EMPIRE_LANGUAGE_ENABLE()
        
constInfo.SET_DEFAULT_USE_ITEM_WEAPON_TABLE_ATTACK_BONUS()
        
constInfo.SET_DEFAULT_USE_SKILL_EFFECT_ENABLE()
        
constInfo.SET_TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE()
        
import event
        event
.SetLeftTimeString('Remaining Time: %d Sec.')
        
textTail.EnablePKTitle(constInfo.PVPMODE_ENABLE)
        if 
constInfo.PVPMODE_TEST_ENABLE:
            
self.testPKMode ui.TextLine()
            
self.testPKMode.SetFontName('Tahoma:14')
            
self.testPKMode.SetPosition(015)
            
self.testPKMode.SetWindowHorizontalAlignCenter()
            
self.testPKMode.SetHorizontalAlignCenter()
            
self.testPKMode.SetFeather()
            
self.testPKMode.SetOutline()
            
self.testPKMode.Show()
            
self.testAlignment ui.TextLine()
            
self.testAlignment.SetFontName('Tahoma:14')
            
self.testAlignment.SetPosition(035)
            
self.testAlignment.SetWindowHorizontalAlignCenter()
            
self.testAlignment.SetHorizontalAlignCenter()
            
self.testAlignment.SetFeather()
            
self.testAlignment.SetOutline()
            
self.testAlignment.Show()
        
        
self._GameWindow__BuildKeyDict()
        
self._GameWindow__BuildDebugInfo()
        
uiPrivateShopBuilder.Clear()
        
exchange.InitTrading()
        
snd.SetMusicVolume(systemSetting.GetMusicVolume() * net.GetFieldMusicVolume())
        
snd.SetSoundVolume(systemSetting.GetSoundVolume())
        
netFieldMusicFileName net.GetFieldMusicFileName()
        if 
netFieldMusicFileName:
            
snd.FadeInMusic('BGM/' netFieldMusicFileName)
        
elif musicInfo.fieldMusic != '':
            
snd.FadeInMusic('BGM/' musicInfo.fieldMusic)
        
        
self._GameWindow__SetQuickSlotMode()
        
self._GameWindow__SelectQuickPage(self.quickSlotPageIndex)
        
self.SetFocus()
        
self.Show()
        
app.ShowCursor()
        
net.SendEnterGamePacket()
        
        try:
            
self.StartGame()
        
except:
            
import exception
            exception
.Abort('GameWindow.Open')


    
    
def Close(self):
        global 
cameraDistancecameraPitchcameraRotationcameraHeight
        self
.Hide()
        (
cameraDistancecameraPitchcameraRotationcameraHeight) = app.GetCamera()
        if 
musicInfo.fieldMusic != '':
            
snd.FadeOutMusic('BGM/' musicInfo.fieldMusic)
        
        
self.onPressKeyDict None
        self
.onClickKeyDict None
        chat
.Close()
        
snd.StopAllSound()
        
grp.InitScreenEffect()
        
chr.Destroy()
        
textTail.Clear()
        
quest.Clear()
        
background.Destroy()
        
guild.Destroy()
        
messenger.Destroy()
        
skill.ClearSkillData()
        
wndMgr.Unlock()
        
mouseModule.mouseController.DeattachObject()
        if 
self.guildWarQuestionDialog:
            
self.guildWarQuestionDialog.Close()
        
        
self.guildNameBoard None
        self
.partyRequestQuestionDialog None
        self
.partyInviteQuestionDialog None
        self
.guildInviteQuestionDialog None
        self
.guildWarQuestionDialog None
        self
.messengerAddFriendQuestion None
        self
.itemDropQuestionDialog None
        self
.confirmDialog None
        self
.PrintCoord None
        self
.FrameRate None
        self
.Pitch None
        self
.Splat None
        self
.TextureNum None
        self
.ObjectNum None
        self
.ViewDistance None
        self
.ClearDictionary()
        
self.playerGauge None
        self
.mapNameShower None
        self
.affectShower None
        
if self.console:
            
self.console.BindGameClass(0)
            
self.console.Close()
            
self.console None
        
        
if self.targetBoard:
            
self.targetBoard.Destroy()
            
self.targetBoard None
        
        
if self.interface:
            
self.interface.HideAllWindows()
            
self.interface.Close()
            
self.interface = None
        
        player
.ClearSkillDict()
        
player.ResetCameraRotation()
        
self.KillFocus()
        
app.HideCursor()
        
log('GameWindow::Close()')

    
    
def _GameWindow__BuildKeyDict(self):
        
onPressKeyDict = { }
        
        
def onPressKeyDict[app.DIK_1]():
            return 
self._GameWindow__PressNumKey(1)

        
        
def onPressKeyDict[app.DIK_2]():
            return 
self._GameWindow__PressNumKey(2)

        
        
def onPressKeyDict[app.DIK_3]():
            return 
self._GameWindow__PressNumKey(3)

        
        
def onPressKeyDict[app.DIK_4]():
            return 
self._GameWindow__PressNumKey(4)

        
        
def onPressKeyDict[app.DIK_5]():
            return 
self._GameWindow__PressNumKey(5)

        
        
def onPressKeyDict[app.DIK_6]():
            return 
self._GameWindow__PressNumKey(6)

        
        
def onPressKeyDict[app.DIK_7]():
            return 
self._GameWindow__PressNumKey(7)

        
        
def onPressKeyDict[app.DIK_8]():
            return 
self._GameWindow__PressNumKey(8)

        
        
def onPressKeyDict[app.DIK_9]():
            return 
self._GameWindow__PressNumKey(9)

        
        
def onPressKeyDict[app.DIK_F1]():
            return 
self._GameWindow__PressQuickSlot(4)

        
        
def onPressKeyDict[app.DIK_F2]():
            return 
self._GameWindow__PressQuickSlot(5)

        
        
def onPressKeyDict[app.DIK_F3]():
            return 
self._GameWindow__PressQuickSlot(6)

        
        
def onPressKeyDict[app.DIK_F4]():
            return 
self._GameWindow__PressQuickSlot(7)

        
        
def onPressKeyDict[app.DIK_F12]():
            return 
self.interface.OpenHelpWindow()

        
        
def onPressKeyDict[app.DIK_LALT]():
            return 
self.ShowName()

        
        
def onPressKeyDict[app.DIK_LCONTROL]():
            return 
self.ShowMouseImage()

        
        
def onPressKeyDict[app.DIK_SYSRQ]():
            return 
self.SaveScreen()

        
        
def onPressKeyDict[app.DIK_SPACE]():
            return 
self.StartAttack()

        
        
def onPressKeyDict[app.DIK_UP]():
            return 
self.MoveUp()

        
        
def onPressKeyDict[app.DIK_DOWN]():
            return 
self.MoveDown()

        
        
def onPressKeyDict[app.DIK_LEFT]():
            return 
self.MoveLeft()

        
        
def onPressKeyDict[app.DIK_RIGHT]():
            return 
self.MoveRight()

        
        
def onPressKeyDict[app.DIK_W]():
            return 
self.MoveUp()

        
        
def onPressKeyDict[app.DIK_S]():
            return 
self.MoveDown()

        
        
def onPressKeyDict[app.DIK_A]():
            return 
self.MoveLeft()

        
        
def onPressKeyDict[app.DIK_D]():
            return 
self.MoveRight()

        
        
def onPressKeyDict[app.DIK_E]():
            return 
app.RotateCamera(app.CAMERA_TO_POSITIVE)

        
        
def onPressKeyDict[app.DIK_R]():
            return 
app.ZoomCamera(app.CAMERA_TO_NEGATIVE)

        
        
def onPressKeyDict[app.DIK_T]():
            return 
app.PitchCamera(app.CAMERA_TO_NEGATIVE)

        
onPressKeyDict[app.DIK_G] = self._GameWindow__PressGKey
        onPressKeyDict
[app.DIK_Q] = self._GameWindow__PressQKey
        
        def onPressKeyDict
[app.DIK_NUMPAD9]():
            return 
app.MovieResetCamera()

        
        
def onPressKeyDict[app.DIK_NUMPAD4]():
            return 
app.MovieRotateCamera(app.CAMERA_TO_NEGATIVE)

        
        
def onPressKeyDict[app.DIK_NUMPAD6]():
            return 
app.MovieRotateCamera(app.CAMERA_TO_POSITIVE)

        
        
def onPressKeyDict[app.DIK_PGUP]():
            return 
app.MovieZoomCamera(app.CAMERA_TO_NEGATIVE)

        
        
def onPressKeyDict[app.DIK_PGDN]():
            return 
app.MovieZoomCamera(app.CAMERA_TO_POSITIVE)

        
        
def onPressKeyDict[app.DIK_NUMPAD8]():
            return 
app.MoviePitchCamera(app.CAMERA_TO_NEGATIVE)

        
        
def onPressKeyDict[app.DIK_NUMPAD2]():
            return 
app.MoviePitchCamera(app.CAMERA_TO_POSITIVE)

        
        
def onPressKeyDict[app.DIK_GRAVE]():
            return 
self.PickUpItem()

        
        
def onPressKeyDict[app.DIK_Z]():
            return 
self.PickUpItem()

        
        
def onPressKeyDict[app.DIK_C](state 'STATUS'):
            return 
self.interface.ToggleCharacterWindow(state)

        
        
def onPressKeyDict[app.DIK_V](state 'SKILL'):
            return 
self.interface.ToggleCharacterWindow(state)

        
        
def onPressKeyDict[app.DIK_N](state 'QUEST'):
            return 
self.interface.ToggleCharacterWindow(state)

        
        
def onPressKeyDict[app.DIK_I]():
            return 
self.interface.ToggleInventoryWindow()

        
        
def onPressKeyDict[app.DIK_M]():
            return 
self.interface.PressMKey()

        
        
def onPressKeyDict[app.DIK_ADD]():
            return 
self.interface.MiniMapScaleUp()

        
        
def onPressKeyDict[app.DIK_SUBTRACT]():
            return 
self.interface.MiniMapScaleDown()

        
        
def onPressKeyDict[app.DIK_L]():
            return 
self.interface.ToggleChatLogWindow()

        
        
def onPressKeyDict[app.DIK_COMMA]():
            return 
self.ShowConsole()

        
        
def onPressKeyDict[app.DIK_LSHIFT]():
            return 
self._GameWindow__SetQuickPageMode()

        
        
def onPressKeyDict[app.DIK_J]():
            return 
self._GameWindow__PressJKey()

        
        
def onPressKeyDict[app.DIK_H]():
            return 
self._GameWindow__PressHKey()

        
        
def onPressKeyDict[app.DIK_B]():
            return 
self._GameWindow__PressBKey()

        
        
def onPressKeyDict[app.DIK_F]():
            return 
self._GameWindow__PressFKey()

        
self.onPressKeyDict onPressKeyDict
        onClickKeyDict 
= { }
        
        
def onClickKeyDict[app.DIK_UP]():
            return 
self.StopUp()

        
        
def onClickKeyDict[app.DIK_DOWN]():
            return 
self.StopDown()

        
        
def onClickKeyDict[app.DIK_LEFT]():
            return 
self.StopLeft()

        
        
def onClickKeyDict[app.DIK_RIGHT]():
            return 
self.StopRight()

        
        
def onClickKeyDict[app.DIK_SPACE]():
            return 
self.EndAttack()

        
        
def onClickKeyDict[app.DIK_W]():
            return 
self.StopUp()

        
        
def onClickKeyDict[app.DIK_S]():
            return 
self.StopDown()

        
        
def onClickKeyDict[app.DIK_A]():
            return 
self.StopLeft()

        
        
def onClickKeyDict[app.DIK_D]():
            return 
self.StopRight()

        
        
def onClickKeyDict[app.DIK_Q]():
            return 
app.RotateCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_E]():
            return 
app.RotateCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_R]():
            return 
app.ZoomCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_F]():
            return 
app.ZoomCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_T]():
            return 
app.PitchCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_G]():
            return 
self._GameWindow__ReleaseGKey()

        
        
def onClickKeyDict[app.DIK_NUMPAD4]():
            return 
app.MovieRotateCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_NUMPAD6]():
            return 
app.MovieRotateCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_PGUP]():
            return 
app.MovieZoomCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_PGDN]():
            return 
app.MovieZoomCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_NUMPAD8]():
            return 
app.MoviePitchCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_NUMPAD2]():
            return 
app.MoviePitchCamera(app.CAMERA_STOP)

        
        
def onClickKeyDict[app.DIK_LALT]():
            return 
self.HideName()

        
        
def onClickKeyDict[app.DIK_LCONTROL]():
            return 
self.HideMouseImage()

        
        
def onClickKeyDict[app.DIK_LSHIFT]():
            return 
self._GameWindow__SetQuickSlotMode()

        
self.onClickKeyDict onClickKeyDict

    
    def _GameWindow__PressNumKey
(selfnum):
        if 
app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            if 
num >= and num <= 9:
                if 
chrmgr.IsPossibleEmoticon(-1):
                    
chrmgr.SetEmoticon(-1int(num) - 1)
                    
net.SendEmoticon(int(num) - 1)
                
            
        
elif num >= and num <= 4:
            
self.pressNumber(num 1)
        

    
    
def _GameWindow__ClickBKey(self):
        if 
constInfo.PVPMODE_ACCELKEY_ENABLE and not app.IsPressed(app.DIK_LCONTROL) and not app.IsPressed(app.DIK_RCONTROL):
            
self.ChangePKMode()
        

    
    
def _GameWindow__PressJKey(self):
        if 
app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            if 
player.IsMountingHorse():
                
net.SendChatPacket('/unmount')
            
elif not uiPrivateShopBuilder.IsBuildingPrivateShop():
                for 
i in xrange(player.INVENTORY_PAGE_SIZE):
                    if 
player.GetItemIndex(iin (7111471116711187112071164):
                        
net.SendItemUsePacket(i)
                        break
                    
            
        

    
    
def _GameWindow__PressHKey(self):
        if 
app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            
net.SendChatPacket('/user_horse_ride')
        

    
    
def _GameWindow__PressBKey(self):
        if 
app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            
net.SendChatPacket('/user_horse_back')
        else:
            
state 'EMOTICON'
            
self.interface.ToggleCharacterWindow(state)

    
    
def _GameWindow__PressFKey(self):
        if 
app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            
net.SendChatPacket('/user_horse_feed')
        else:
            
app.ZoomCamera(app.CAMERA_TO_POSITIVE)

    
    
def _GameWindow__PressGKey(self):
        if 
app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            
net.SendChatPacket('/ride')
        
elif self.ShowNameFlag:
            
self.interface.ToggleGuildWindow()
        else:
            
app.PitchCamera(app.CAMERA_TO_POSITIVE)

    
    
def _GameWindow__ReleaseGKey(self):
        
app.PitchCamera(app.CAMERA_STOP)

    
    
def _GameWindow__PressQKey(self):
        if 
app.IsPressed(app.DIK_LCONTROL) or app.IsPressed(app.DIK_RCONTROL):
            
self.interface.ToggleQuestButtons()
        else:
            
app.RotateCamera(app.CAMERA_TO_NEGATIVE)

    
    
def _GameWindow__SetQuickSlotMode(self):
        
self.pressNumber ui.__mem_func__(self._GameWindow__PressQuickSlot)

    
    
def _GameWindow__SetQuickPageMode(self):
        
self.pressNumber ui.__mem_func__(self._GameWindow__SelectQuickPage)

    
    
def _GameWindow__PressQuickSlot(selflocalSlotIndex):
        
player.RequestUseLocalQuickSlot(localSlotIndex)

    
    
def _GameWindow__SelectQuickPage(selfpageIndex):
        
self.quickSlotPageIndex pageIndex
        player
.SetQuickPage(pageIndex)

    
    
def ToggleDebugInfo(self):
        
self.isShowDebugInfo not (self.isShowDebugInfo)
        if 
self.isShowDebugInfo:
            
self.PrintCoord.Show()
            
self.FrameRate.Show()
            
self.Pitch.Show()
            
self.Splat.Show()
            
self.TextureNum.Show()
            
self.ObjectNum.Show()
            
self.ViewDistance.Show()
        else:
            
self.PrintCoord.Hide()
            
self.FrameRate.Hide()
            
self.Pitch.Hide()
            
self.Splat.Hide()
            
self.TextureNum.Hide()
            
self.ObjectNum.Hide()
            
self.ViewDistance.Hide()

    
    
def _GameWindow__BuildDebugInfo(self):
        
self.PrintCoord ui.TextLine()
        
self.PrintCoord.SetFontName('Tahoma:14')
        
self.PrintCoord.SetPosition(wndMgr.GetScreenWidth() - 2700)
        
self.FrameRate ui.TextLine()
        
self.FrameRate.SetFontName('Tahoma:14')
        
self.FrameRate.SetPosition(wndMgr.GetScreenWidth() - 27020)
        
self.Pitch ui.TextLine()
        
self.Pitch.SetFontName('Tahoma:14')
        
self.Pitch.SetPosition(wndMgr.GetScreenWidth() - 27040)
        
self.Splat ui.TextLine()
        
self.Splat.SetFontName('Tahoma:14')
        
self.Splat.SetPosition(wndMgr.GetScreenWidth() - 27060)
        
self.TextureNum ui.TextLine()
        
self.TextureNum.SetFontName('Tahoma:14')
        
self.TextureNum.SetPosition(wndMgr.GetScreenWidth() - 27080)
        
self.ObjectNum ui.TextLine()
        
self.ObjectNum.SetFontName('Tahoma:14')
        
self.ObjectNum.SetPosition(wndMgr.GetScreenWidth() - 270100)
        
self.ViewDistance ui.TextLine()
        
self.ViewDistance.SetFontName('Tahoma:14')
        
self.ViewDistance.SetPosition(00)

    
    
def _GameWindow__NotifyError(selfmsg):
        
chat.AppendChat(chat.CHAT_TYPE_INFOmsg)

    
    
def ChangePKMode(self):
        if 
not app.IsPressed(app.DIK_LCONTROL):
            return 
None
        
        
if player.GetStatus(player.LEVEL) < constInfo.PVPMODE_PROTECTED_LEVEL:
            
self._GameWindow__NotifyError('You need to have at least Level %d to be able to use the PvP Mode.' constInfo.PVPMODE_PROTECTED_LEVEL)
            return 
None
        
        curTime 
app.GetTime()
        if 
curTime self.lastPKModeSendedTime constInfo.PVPMODE_ACCELKEY_DELAY:
            return 
None
        
        self
.lastPKModeSendedTime curTime
        curPKMode 
player.GetPKMode()
        
nextPKMode curPKMode 1
        
if nextPKMode == player.PK_MODE_PROTECT:
            if 
== player.GetGuildID():
                
chat.AppendChat(chat.CHAT_TYPE_INFO'You cannot activate Guild Mode when you do not belong to a Guild.')
                
nextPKMode 0
            
else:
                
nextPKMode player.PK_MODE_GUILD
        elif nextPKMode 
== player.PK_MODE_MAX_NUM:
            
nextPKMode 0
        
        net
.SendChatPacket('/PKMode ' str(nextPKMode))
        
log('/PKMode ' str(nextPKMode))

    
    
def OnChangePKMode(self):
        
self.interface.OnChangePKMode()
        
        try:
            
self._GameWindow__NotifyError(locale.OPTION_PVPMODE_MESSAGE_DICT[player.GetPKMode()])
        
except KeyError:
            
log('UNKNOWN PVPMode[%d]' player.GetPKMode())

        if 
constInfo.PVPMODE_TEST_ENABLE:
            
curPKMode player.GetPKMode()
            (
alignmentgrade) = chr.testGetPKData()
            
self.pkModeNameDict = {
                
0'PEACE',
                
1'REVENGE',
                
2'FREE',
                
3'PROTECT' }
            
self.testPKMode.SetText('Current PK Mode : ' self.pkModeNameDict.get(curPKMode'UNKNOWN'))
            
self.testAlignment.SetText('Current Alignment : ' str(alignment) + ' (' locale.TITLE_NAME_LIST[grade] + ')')
        

    
    
def StartGame(self):
        
self.RefreshInventory()
        
self.RefreshEquipment()
        
self.RefreshCharacter()
        
self.RefreshSkill()

    
    
def CheckGameButton(self):
        if 
self.interface:
            
self.interface.CheckGameButton()
        

    
    
def RefreshAlignment(self):
        
self.interface.RefreshAlignment()

    
    
def RefreshStatus(self):
        
self.CheckGameButton()
        if 
self.interface:
            
self.interface.RefreshStatus()
        
        if 
self.playerGauge:
            
self.playerGauge.RefreshGauge()
        

    
    
def RefreshStamina(self):
        
self.interface.RefreshStamina()

    
    
def RefreshSkill(self):
        
self.CheckGameButton()
        if 
self.interface:
            
self.interface.RefreshSkill()
        

    
    
def RefreshQuest(self):
        
self.interface.RefreshQuest()

    
    
def RefreshMessenger(self):
        
self.interface.RefreshMessenger()

    
    
def RefreshGuildInfoPage(self):
        
self.interface.RefreshGuildInfoPage()

    
    
def RefreshGuildBoardPage(self):
        
self.interface.RefreshGuildBoardPage()

    
    
def RefreshGuildMemberPage(self):
        
self.interface.RefreshGuildMemberPage()

    
    
def RefreshGuildMemberPageGradeComboBox(self):
        
self.interface.RefreshGuildMemberPageGradeComboBox()

    
    
def RefreshGuildSkillPage(self):
        
self.interface.RefreshGuildSkillPage()

    
    
def RefreshGuildGradePage(self):
        
self.interface.RefreshGuildGradePage()

    
    
def RefreshMobile(self):
        if 
self.interface:
            
self.interface.RefreshMobile()
        

    
    
def OnMobileAuthority(self):
        
self.interface.OnMobileAuthority()

    
    
def OnBlockMode(selfmode):
        
self.interface.OnBlockMode(mode)

    
    
def OpenQuestWindow(selfskinidx):
        
self.interface.OpenQuestWindow(skinidx)

    
    
def AskGuildName(self):
        
guildNameBoard uiCommon.InputDialog()
        
guildNameBoard.SetTitle('Guild name')
        
guildNameBoard.SetAcceptEvent(ui.__mem_func__(self.ConfirmGuildName))
        
guildNameBoard.SetCancelEvent(ui.__mem_func__(self.CancelGuildName))
        
guildNameBoard.Open()
        
self.guildNameBoard guildNameBoard

    
    def ConfirmGuildName
(self):
        
guildName self.guildNameBoard.GetText()
        if 
not guildName:
            return 
None
        
        
if net.IsInsultIn(guildName):
            
self.PopupMessage('Guild name is not valid.')
            return 
None
        
        net
.SendAnswerMakeGuildPacket(guildName)
        
self.guildNameBoard.Close()
        
self.guildNameBoard None
        
return 1

    
    def CancelGuildName
(self):
        
self.guildNameBoard.Close()
        
self.guildNameBoard None
        
return 1

    
    def PopupMessage
(selfmsg):
        
self.stream.popupWindow.Close()
        
self.stream.popupWindow.Open(msg0'OK')

    
    
def OpenRefineDialog(selftargetItemPosnextGradeItemVnumcostprobtype 0):
        
self.interface.OpenRefineDialog(targetItemPosnextGradeItemVnumcostprobtype)

    
    
def AppendMaterialToRefineDialog(selfvnumcount):
        
self.interface.AppendMaterialToRefineDialog(vnumcount)

    
    
def RunUseSkillEvent(selfslotIndexcoolTime):
        
self.interface.OnUseSkill(slotIndexcoolTime)

    
    
def ClearAffects(self):
        
self.affectShower.ClearAffects()

    
    
def SetAffect(selfaffect):
        
self.affectShower.SetAffect(affect)

    
    
def ResetAffect(selfaffect):
        
self.affectShower.ResetAffect(affect)

    
    
def BINARY_NEW_AddAffect(selftypepointIdxvalueduration):
        
self.affectShower.BINARY_NEW_AddAffect(typepointIdxvalueduration)

    
    
def BINARY_NEW_RemoveAffect(selftypepointIdx):
        
self.affectShower.BINARY_NEW_RemoveAffect(typepointIdx)

    
    
def ActivateSkillSlot(selfslotIndex):
        if 
self.interface:
            
self.interface.OnActivateSkill(slotIndex)
        

    
    
def DeactivateSkillSlot(selfslotIndex):
        if 
self.interface:
            
self.interface.OnDeactivateSkill(slotIndex)
        

    
    
def RefreshEquipment(self):
        if 
self.interface:
            
self.interface.RefreshInventory()
        

    
    
def RefreshInventory(self):
        if 
self.interface:
            
self.interface.RefreshInventory()
        

    
    
def RefreshCharacter(self):
        if 
self.interface:
            
self.interface.RefreshCharacter()
        

    
    
def OnGameOver(self):
        
self.CloseTargetBoard()
        
self.OpenRestartDialog()

    
    
def OpenRestartDialog(self):
        
self.interface.OpenRestartDialog()

    
    
def ChangeCurrentSkill(selfskillSlotNumber):
        
self.interface.OnChangeCurrentSkill(skillSlotNumber)

    
    
def SetPCTargetBoard(selfvidname):
        
self.targetBoard.Open(vidname)
        if 
app.IsPressed(app.DIK_LCONTROL):
            if 
not player.IsSameEmpire(vid):
                return 
None
            
            
if player.IsMainCharacterIndex(vid):
                return 
None
            elif chr
.INSTANCE_TYPE_BUILDING == chr.GetInstanceType(vid):
                return 
None
            
            self
.interface.OpenWhisperDialog(name)
        

    
    
def RefreshTargetBoardByVID(selfvid):
        
self.targetBoard.RefreshByVID(vid)

    
    
def RefreshTargetBoardByName(selfname):
        
self.targetBoard.RefreshByName(name)

    
    
def _GameWindow__RefreshTargetBoard(self):
        
self.targetBoard.Refresh()

    
    
def SetHPTargetBoard(selfvidhpPercentage):
        if 
vid != self.targetBoard.GetTargetVID():
            
self.targetBoard.ResetTargetBoard()
            
self.targetBoard.SetEnemyVID(vid)
        
        
self.targetBoard.SetHP(hpPercentage)
        
self.targetBoard.Show()

    
    
def CloseTargetBoardIfDifferent(selfvid):
        if 
vid != self.targetBoard.GetTargetVID():
            
self.targetBoard.Close()
        

    
    
def CloseTargetBoard(self):
        
self.targetBoard.Close()

    
    
def OpenEquipmentDialog(selfvid):
        
self.interface.OpenEquipmentDialog(vid)

    
    
def SetEquipmentDialogItem(selfvidslotIndexvnumcount):
        
self.interface.SetEquipmentDialogItem(vidslotIndexvnumcount)

    
    
def SetEquipmentDialogSocket(selfvidslotIndexsocketIndexvalue):
        
self.interface.SetEquipmentDialogSocket(vidslotIndexsocketIndexvalue)

    
    
def SetEquipmentDialogAttr(selfvidslotIndexattrIndextypevalue):
        
self.interface.SetEquipmentDialogAttr(vidslotIndexattrIndextypevalue)

    
    
def ShowMapName(selfmapNamexy):
        if 
self.mapNameShower:
            
self.mapNameShower.ShowMapName(mapNamexy)
        
        if 
self.interface:
            
self.interface.SetMapName(mapName)
        

    
    
def BINARY_OpenAtlasWindow(self):
        
self.interface.BINARY_OpenAtlasWindow()

    
    
def OnRecvWhisper(selfmodenameline):
        if 
mode == chat.WHISPER_TYPE_GM:
            
self.interface.RegisterGameMasterName(name)
        
        
chat.AppendWhisper(modenameline)
        
self.interface.RecvWhisper(name)

    
    
def OnRecvWhisperSystemMessage(selfmodenameline):
        
chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEMnameline)
        
self.interface.RecvWhisper(name)

    
    
def OnRecvWhisperError(selfmodenameline):
        if 
locale.WHISPER_ERROR.has_key(mode):
            
chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEMnamelocale.WHISPER_ERROR[mode](name))
        else:
            
chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEMname'Whisper Unknown Error(mode=%d, name=%s)' % (modename))
        
self.interface.RecvWhisper(name)

    
    
def RecvWhisper(selfname):
        
self.interface.RecvWhisper(name)

    
    
def OnPickMoney(selfmoney):
        
chat.AppendChat(chat.CHAT_TYPE_INFO' You received %d Gold.' money)

    
    
def OnShopError(selftype):
        
        try:
            
self.PopupMessage(locale.SHOP_ERROR_DICT[type])
        
except KeyError:
            
self.PopupMessage('Unknown Loading Error: %s' type)


    
    
def OnSafeBoxError(self):
        
self.PopupMessage('You entered the wrong password.')

    
    
def OnFishingSuccess(selfisFishfishName):
        
chat.AppendChatWithDelay(chat.CHAT_TYPE_INFOlocale.FISHING_SUCCESS(isFishfishName), 2000)

    
    
def OnFishingNotifyUnknown(self):
        
chat.AppendChat(chat.CHAT_TYPE_INFO' I do not know what I caught.')

    
    
def OnFishingWrongPlace(self):
        
chat.AppendChat(chat.CHAT_TYPE_INFO'I cannot go fishing here.')

    
    
def OnFishingNotify(selfisFishfishName):
        
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.FISHING_NOTIFY(isFishfishName))

    
    
def OnFishingFailure(self):
        
chat.AppendChatWithDelay(chat.CHAT_TYPE_INFO'You lost the Bait.'2000)

    
    
def OnCannotPickItem(self):
        
chat.AppendChat(chat.CHAT_TYPE_INFO'You cannot collect this Item as you did not win it.')

    
    
def OnCannotMining(self):
        
chat.AppendChat(chat.CHAT_TYPE_INFO'You cannot look mine while riding.')

    
    
def OnCannotUseSkill(selfvidtype):
        if 
locale.USE_SKILL_ERROR_TAIL_DICT.has_key(type):
            
textTail.RegisterInfoTail(vidlocale.USE_SKILL_ERROR_TAIL_DICT[type])
        
        if 
locale.USE_SKILL_ERROR_CHAT_DICT.has_key(type):
            
chat.AppendChat(chat.CHAT_TYPE_INFOlocale.USE_SKILL_ERROR_CHAT_DICT[type])
        

    
    
def OnCannotShotError(selfvidtype):
        
textTail.RegisterInfoTail(vidlocale.SHOT_ERROR_TAIL_DICT.get(type'Unknown Long Distance Attack Error: %s' type))

    
    
def StartPointReset(self):
        
self.interface.OpenPointResetDialog()

    
    
def StartShop(selfvid):
        
self.interface.OpenShopDialog(vid)

    
    
def EndShop(self):
        
self.interface.CloseShopDialog()

    
    
def RefreshShop(self):
        
self.interface.RefreshShopDialog()

    
    
def SetShopSellingPrice(selfPrice):
        
pass

    
    def StartExchange
(self):
        
self.interface.StartExchange()

    
    
def EndExchange(self):
        
self.interface.EndExchange()

    
    
def RefreshExchange(self):
        
self.interface.RefreshExchange()

    
    
def RecvPartyInviteQuestion(selfleaderVIDleaderName):
        
partyInviteQuestionDialog uiCommon.QuestionDialog()
        
partyInviteQuestionDialog.SetText('Do you want to join' ' ' leaderName "'s party?")
        
partyInviteQuestionDialog.SetAcceptEvent(lambda arg TRUEself.AnswerPartyInvite(arg))
        
partyInviteQuestionDialog.SetCancelEvent(lambda arg FALSEself.AnswerPartyInvite(arg))
        
partyInviteQuestionDialog.Open()
        
partyInviteQuestionDialog.partyLeaderVID leaderVID
        self
.partyInviteQuestionDialog partyInviteQuestionDialog

    
    def AnswerPartyInvite
(selfanswer):
        if 
not (self.partyInviteQuestionDialog):
            return 
None
        
        partyLeaderVID 
self.partyInviteQuestionDialog.partyLeaderVID
        distance 
player.GetCharacterDistance(partyLeaderVID)
        if 
distance 0.0 or distance 5000:
            
answer 0
        
        net
.SendPartyInviteAnswerPacket(partyLeaderVIDanswer)
        
self.partyInviteQuestionDialog.Close()
        
self.partyInviteQuestionDialog None

    
    def AddPartyMember
(selfpidname):
        
self.interface.AddPartyMember(pidname)

    
    
def UpdatePartyMemberInfo(selfpid):
        
self.interface.UpdatePartyMemberInfo(pid)

    
    
def RemovePartyMember(selfpid):
        
self.interface.RemovePartyMember(pid)
        
self._GameWindow__RefreshTargetBoard()

    
    
def LinkPartyMember(selfpidvid):
        
self.interface.LinkPartyMember(pidvid)

    
    
def UnlinkPartyMember(selfpid):
        
self.interface.UnlinkPartyMember(pid)

    
    
def UnlinkAllPartyMember(self):
        
self.interface.UnlinkAllPartyMember()

    
    
def ExitParty(self):
        
self.interface.ExitParty()
        
self.RefreshTargetBoardByVID(self.targetBoard.GetTargetVID())

    
    
def ChangePartyParameter(selfdistributionMode):
        
self.interface.ChangePartyParameter(distributionMode)

    
    
def OnMessengerAddFriendQuestion(selfname):
        
messengerAddFriendQuestion uiCommon.QuestionDialog2()
        
messengerAddFriendQuestion.SetText1('%s added you as a friend.' name)
        
messengerAddFriendQuestion.SetText2('Accept?')
        
messengerAddFriendQuestion.SetAcceptEvent(ui.__mem_func__(self.OnAcceptAddFriend))
        
messengerAddFriendQuestion.SetCancelEvent(ui.__mem_func__(self.OnDenyAddFriend))
        
messengerAddFriendQuestion.Open()
        
messengerAddFriendQuestion.name name
        self
.messengerAddFriendQuestion messengerAddFriendQuestion

    
    def OnAcceptAddFriend
(self):
        
name self.messengerAddFriendQuestion.name
        net
.SendChatPacket('/messenger_auth y ' name)
        
self.OnCloseAddFriendQuestionDialog()
        return 
1

    
    def OnDenyAddFriend
(self):
        
name self.messengerAddFriendQuestion.name
        net
.SendChatPacket('/messenger_auth n ' name)
        
self.OnCloseAddFriendQuestionDialog()
        return 
1

    
    def OnCloseAddFriendQuestionDialog
(self):
        
self.messengerAddFriendQuestion.Close()
        
self.messengerAddFriendQuestion None
        
return 1

    
    def OpenSafeboxWindow
(selfsize):
        
self.interface.OpenSafeboxWindow(size)

    
    
def RefreshSafebox(self):
        
self.interface.RefreshSafebox()

    
    
def RefreshSafeboxMoney(self):
        
self.interface.RefreshSafeboxMoney()

    
    
def OpenMallWindow(selfsize):
        
self.interface.OpenMallWindow(size)

    
    
def RefreshMall(self):
        
self.interface.RefreshMall()

    
    
def RecvGuildInviteQuestion(selfguildIDguildName):
        
guildInviteQuestionDialog uiCommon.QuestionDialog()
        
guildInviteQuestionDialog.SetText(guildName 'Do you want to join the Guild?')
        
guildInviteQuestionDialog.SetAcceptEvent(lambda arg TRUEself.AnswerGuildInvite(arg))
        
guildInviteQuestionDialog.SetCancelEvent(lambda arg FALSEself.AnswerGuildInvite(arg))
        
guildInviteQuestionDialog.Open()
        
guildInviteQuestionDialog.guildID guildID
        self
.guildInviteQuestionDialog guildInviteQuestionDialog

    
    def AnswerGuildInvite
(selfanswer):
        if 
not (self.guildInviteQuestionDialog):
            return 
None
        
        guildLeaderVID 
self.guildInviteQuestionDialog.guildID
        net
.SendGuildInviteAnswerPacket(guildLeaderVIDanswer)
        
self.guildInviteQuestionDialog.Close()
        
self.guildInviteQuestionDialog None

    
    def DeleteGuild
(self):
        
self.interface.DeleteGuild()

    
    
def ShowClock(selfsecond):
        
self.interface.ShowClock(second)

    
    
def HideClock(self):
        
self.interface.HideClock()

    
    
def BINARY_ActEmotion(selfemotionIndex):
        if 
self.interface.wndCharacter:
            
self.interface.wndCharacter.ActEmotion(emotionIndex)
        

    
    
def CheckFocus(self):
        if 
== self.IsFocus():
            if 
== self.interface.IsOpenChat():
                
self.interface.ToggleChat()
            
            
self.SetFocus()
        

    
    
def SaveScreen(self):
        (
succeededname) = grp.SaveScreenShotToPath(kScreenshotDirectory '/')
        if 
succeeded:
            
chat.AppendChat(chat.CHAT_TYPE_INFO'Your screenshot has been saved to %s.' name)
        else:
            
chat.AppendChat(chat.CHAT_TYPE_INFO'Saving of Screenshot failed.')

    
    
def ShowConsole(self):
        if 
self.consoleEnable:
            
self.console.OpenWindow()
        

    
    
def ShowName(self):
        
self.ShowNameFlag 1
        self
.playerGauge.EnableShowAlways()
        
player.SetQuickPage(self.quickSlotPageIndex 1)

    
    
def _GameWindow__IsShowName(self):
        if 
systemSetting.IsAlwaysShowName():
            return 
1
        
        
if self.ShowNameFlag:
            return 
1
        
        
return 0

    
    def HideName
(self):
        
self.ShowNameFlag 0
        self
.playerGauge.DisableShowAlways()
        
player.SetQuickPage(self.quickSlotPageIndex)

    
    
def ShowMouseImage(self):
        
self.interface.ShowMouseImage()

    
    
def HideMouseImage(self):
        
self.interface.HideMouseImage()

    
    
def StartAttack(self):
        
player.SetAttackKeyState(1)

    
    
def EndAttack(self):
        
player.SetAttackKeyState(0)

    
    
def MoveUp(self):
        
player.SetSingleDIKKeyState(app.DIK_UP1)

    
    
def MoveDown(self):
        
player.SetSingleDIKKeyState(app.DIK_DOWN1)

    
    
def MoveLeft(self):
        
player.SetSingleDIKKeyState(app.DIK_LEFT1)

    
    
def MoveRight(self):
        
player.SetSingleDIKKeyState(app.DIK_RIGHT1)

    
    
def StopUp(self):
        
player.SetSingleDIKKeyState(app.DIK_UP0)

    
    
def StopDown(self):
        
player.SetSingleDIKKeyState(app.DIK_DOWN0)

    
    
def StopLeft(self):
        
player.SetSingleDIKKeyState(app.DIK_LEFT0)

    
    
def StopRight(self):
        
player.SetSingleDIKKeyState(app.DIK_RIGHT0)

    
    
def PickUpItem(self):
        
player.PickCloseItem()

    
    
def OnKeyDown(selfkey):
        if 
self.interface.wndWeb and self.interface.wndWeb.IsShow():
            return 
None
        
        constInfo
.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(0)
        
        try:
            
self.onPressKeyDict[key]()
        
except KeyError:
            
pass
        except
:
            
raise 

        
return 1

    
    def OnKeyUp
(selfkey):
        
        try:
            
self.onClickKeyDict[key]()
        
except KeyError:
            
pass
        except
:
            
raise 

        
return 1

    
    def OnMouseLeftButtonDown
(self):
        if 
self.interface.BUILD_OnMouseLeftButtonDown():
            return 
None
        
        
if mouseModule.mouseController.isAttached():
            
self.CheckFocus()
        else:
            
hyperlink ui.GetHyperlink()
            if 
hyperlink:
                return 
None
            
else:
                
self.CheckFocus()
                
player.SetMouseState(player.MBT_LEFTplayer.MBS_PRESS)
        return 
1

    
    def OnMouseLeftButtonUp
(self):
        if 
self.interface.BUILD_OnMouseLeftButtonUp():
            return 
None
        
        
if mouseModule.mouseController.isAttached():
            
attachedType mouseModule.mouseController.GetAttachedType()
            
attachedItemIndex mouseModule.mouseController.GetAttachedItemIndex()
            
attachedItemSlotPos mouseModule.mouseController.GetAttachedSlotNumber()
            
attachedItemCount mouseModule.mouseController.GetAttachedItemCount()
            if 
player.SLOT_TYPE_QUICK_SLOT == attachedType:
                
player.RequestDeleteGlobalQuickSlot(attachedItemSlotPos)
            
elif player.SLOT_TYPE_INVENTORY == attachedType:
                if 
player.ITEM_MONEY == attachedItemIndex:
                    
self._GameWindow__PutMoney(attachedTypeattachedItemCountself.PickingCharacterIndex)
                else:
                    
self._GameWindow__PutItem(attachedTypeattachedItemIndexattachedItemSlotPosattachedItemCountself.PickingCharacterIndex)
            
            
mouseModule.mouseController.DeattachObject()
        else:
            
hyperlink ui.GetHyperlink()
            if 
hyperlink:
                if 
app.IsPressed(app.DIK_LALT):
                    
link chat.GetLinkFromHyperlink(hyperlink)
                    
ime.PasteString(link)
                else:
                    
self.interface.MakeHyperlinkTooltip(hyperlink)
                return 
None
            
else:
                
player.SetMouseState(player.MBT_LEFTplayer.MBS_CLICK)
        return 
1

    
    def _GameWindow__PutItem
(selfattachedTypeattachedItemIndexattachedItemSlotPosattachedItemCountdstChrID):
        if 
chr.HasInstance(self.PickingCharacterIndex):
            if 
player.GetMainCharacterIndex() == dstChrID:
                return 
None
            elif player
.IsEquipmentSlot(attachedItemSlotPos):
                
self.stream.popupWindow.Close()
                
self.stream.popupWindow.Open('You cannot exchange equipped Items.'0'OK')
            
elif chr.IsNPC(dstChrID):
                
net.SendGiveItemPacket(dstChrIDattachedItemSlotPosattachedItemCount)
            else:
                
item.SelectItem(player.GetItemIndex(attachedItemSlotPos))
                if 
constInfo.IsItemUnsafeToTrade(attachedItemSlotPos) or item.IsAntiFlag(item.ANTIFLAG_GIVE):
                    
chat.AppendChat(chat.CHAT_TYPE_INFO'You cannot trade this Item.')
                else:
                    
net.SendExchangeStartPacket(dstChrID)
                    
net.SendExchangeItemAddPacket(attachedItemSlotPos0)
        else:
            
self._GameWindow__DropItem(attachedTypeattachedItemIndexattachedItemSlotPosattachedItemCount)

    
    
def _GameWindow__PutMoney(selfattachedTypeattachedMoneydstChrID):
        if 
== chr.HasInstance(dstChrID) and player.GetMainCharacterIndex() != dstChrID:
            
net.SendExchangeStartPacket(dstChrID)
            
net.SendExchangeElkAddPacket(attachedMoney)
        else:
            
self._GameWindow__DropMoney(attachedTypeattachedMoney)

    
    
def _GameWindow__DropMoney(selfattachedTypeattachedMoney):
        if 
uiPrivateShopBuilder.IsBuildingPrivateShop():
            
chat.AppendChat(chat.CHAT_TYPE_INFO'You cannot drop an equipped Item if you open a private shop.')
            return 
None
        
        
if attachedMoney >= 1000:
            
self.stream.popupWindow.Close()
            
self.stream.popupWindow.Open('You can drop a maximum of 1000 Gold.'0'OK')
            return 
None
        
        itemDropQuestionDialog 
uiCommon.QuestionDialog()
        
itemDropQuestionDialog.SetText('Do you want to drop %d Gold?' attachedMoney)
        
itemDropQuestionDialog.SetAcceptEvent(lambda arg TRUEself.RequestDropItem(arg))
        
itemDropQuestionDialog.SetCancelEvent(lambda arg FALSEself.RequestDropItem(arg))
        
itemDropQuestionDialog.Open()
        
itemDropQuestionDialog.dropType attachedType
        itemDropQuestionDialog
.dropCount attachedMoney
        itemDropQuestionDialog
.dropNumber player.ITEM_MONEY
        self
.itemDropQuestionDialog itemDropQuestionDialog

    
    def _GameWindow__DropItem
(selfattachedTypeattachedItemIndexattachedItemSlotPosattachedItemCount):
        if 
uiPrivateShopBuilder.IsBuildingPrivateShop():
            
chat.AppendChat(chat.CHAT_TYPE_INFO'You cannot drop an equipped Item if you open a private shop.')
            return 
None
        
        
if player.IsEquipmentSlot(attachedItemSlotPos):
            
self.stream.popupWindow.Close()
            
self.stream.popupWindow.Open('You cannot drop an equipped Item.'0'OK')
        
elif not constInfo.IsItemUnsafeToTrade(attachedItemSlotPos):
            
dropItemIndex player.GetItemIndex(attachedItemSlotPos)
            
item.SelectItem(dropItemIndex)
            
dropItemName item.GetItemName()
            
questionText locale.HOW_MANY_ITEM_DO_YOU_DROP(dropItemNameattachedItemCount)
            
itemDropQuestionDialog uiCommon.QuestionDialog()
            
itemDropQuestionDialog.SetText(questionText)
            
itemDropQuestionDialog.SetAcceptEvent(lambda arg TRUEself.RequestDropItem(arg))
            
itemDropQuestionDialog.SetCancelEvent(lambda arg FALSEself.RequestDropItem(arg))
            
itemDropQuestionDialog.Open()
            
itemDropQuestionDialog.dropType attachedType
            itemDropQuestionDialog
.dropNumber attachedItemSlotPos
            itemDropQuestionDialog
.dropCount attachedItemCount
            self
.itemDropQuestionDialog itemDropQuestionDialog
            constInfo
.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(1)
        

    
    
def RequestDropItem(selfanswer):
        if 
not (self.itemDropQuestionDialog):
            return 
None
        
        
if answer:
            
dropType self.itemDropQuestionDialog.dropType
            dropCount 
self.itemDropQuestionDialog.dropCount
            dropNumber 
self.itemDropQuestionDialog.dropNumber
            
if player.SLOT_TYPE_INVENTORY == dropType:
                if 
dropNumber == player.ITEM_MONEY:
                    
net.SendGoldDropPacketNew(dropCount)
                    
snd.PlaySound('sound/ui/money.wav')
                else:
                    
self._GameWindow__SendDropItemPacket(dropNumberdropCount)
            
        
        
self.itemDropQuestionDialog.Close()
        
self.itemDropQuestionDialog None
        constInfo
.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(0)

    
    
def _GameWindow__SendDropItemPacket(selfitemVNumitemCount):
        if 
uiPrivateShopBuilder.IsBuildingPrivateShop():
            
chat.AppendChat(chat.CHAT_TYPE_INFO'You cannot drop an equipped Item if you open a private shop.')
            return 
None
        
        net
.SendItemDropPacketNew(itemVNumitemCount)

    
    
def OnMouseRightButtonDown(self):
        
self.CheckFocus()
        if 
== mouseModule.mouseController.isAttached():
            
mouseModule.mouseController.DeattachObject()
        else:
            
player.SetMouseState(player.MBT_RIGHTplayer.MBS_PRESS)
        return 
1

    
    def OnMouseRightButtonUp
(self):
        if 
== mouseModule.mouseController.isAttached():
            return 
1
        
        player
.SetMouseState(player.MBT_RIGHTplayer.MBS_CLICK)
        return 
1

    
    def OnMouseMiddleButtonDown
(self):
        
player.SetMouseMiddleButtonState(player.MBS_PRESS)

    
    
def OnMouseMiddleButtonUp(self):
        
player.SetMouseMiddleButtonState(player.MBS_CLICK)

    
    
def OnUpdate(self):
        
app.UpdateGame()
        if 
self.mapNameShower.IsShow():
            
self.mapNameShower.Update()
        
        if 
self.isShowDebugInfo:
            
self.UpdateDebugInfo()
        
        if 
self.enableXMasBoom:
            
self._GameWindow__XMasBoom_Update()
        
        
self.interface.BUILD_OnUpdate()

    
    
def UpdateDebugInfo(self):
        (
xyz) = player.GetMainCharacterPosition()
        
nUpdateTime app.GetUpdateTime()
        
nUpdateFPS app.GetUpdateFPS()
        
nRenderFPS app.GetRenderFPS()
        
nFaceCount app.GetFaceCount()
        
fFaceSpeed app.GetFaceSpeed()
        
nST background.GetRenderShadowTime()
        (
fAveRTnCurRT) = app.GetRenderTime()
        (
iNumfFogStartfFogEndfFarCilp) = background.GetDistanceSetInfo()
        (
iPatchiSplatfSplatRatiosTextureNum) = background.GetRenderedSplatNum()
        if 
iPatch == 0:
            
iPatch 1
        
        self
.PrintCoord.SetText('Coordinate: %.2f %.2f %.2f ATM: %d' % (xyzapp.GetAvailableTextureMemory() / 1048576))
        
self.FrameRate.SetText('UFPS: %3d UT: %3d FS %.2f' % (nUpdateFPSnUpdateTimefFaceSpeed))
        if 
fAveRT 1.0:
            
self.Pitch.SetText('RFPS: %3d RT:%.2f(%3d) FC: %d(%.2f) ' % (nRenderFPSfAveRTnCurRTnFaceCountnFaceCount fAveRT))
        
        
self.Splat.SetText('PATCH: %d SPLAT: %d BAD(%.2f)' % (iPatchiSplatfSplatRatio))
        
self.ViewDistance.SetText('Num : %d, FS : %f, FE : %f, FC : %f' % (iNumfFogStartfFogEndfFarCilp))

    
    
def OnRender(self):
        
app.RenderGame()
        if 
self.console.Console.collision:
            
background.RenderCollision()
            
chr.RenderCollision()
        
        (
xy) = app.GetCursorPosition()
        
textTail.UpdateAllTextTail()
        if 
== wndMgr.IsPickedWindow(self.hWnd):
            
self.PickingCharacterIndex chr.Pick()
            if -
!= self.PickingCharacterIndex:
                
textTail.ShowCharacterTextTail(self.PickingCharacterIndex)
            
            if 
!= self.targetBoard.GetTargetVID():
                
textTail.ShowCharacterTextTail(self.targetBoard.GetTargetVID())
            
            if 
not self._GameWindow__IsShowName():
                
self.PickingItemIndex item.Pick()
                if -
!= self.PickingItemIndex:
                    
textTail.ShowItemTextTail(self.PickingItemIndex)
                
            
        
        if 
self._GameWindow__IsShowName():
            
textTail.ShowAllTextTail()
            
self.PickingItemIndex textTail.Pick(xy)
        
        
textTail.UpdateShowingTextTail()
        
textTail.ArrangeTextTail()
        if -
!= self.PickingItemIndex:
            
textTail.SelectItemName(self.PickingItemIndex)
        
        
grp.PopState()
        
grp.SetInterfaceRenderState()
        
textTail.Render()
        
textTail.HideAllTextTail()

    
    
def OnPressEscapeKey(self):
        if 
app.TARGET == app.GetCursor():
            
app.SetCursor(app.NORMAL)
        
elif 1 == mouseModule.mouseController.isAttached():
            
mouseModule.mouseController.DeattachObject()
        else:
            
self.interface.OpenSystemDialog()
        return 
1

    
    def OnIMEReturn
(self):
        if 
app.IsPressed(app.DIK_LSHIFT):
            
self.interface.OpenWhisperDialogWithoutTarget()
        else:
            
self.interface.ToggleChat()
        return 
1

    
    def OnPressExitKey
(self):
        
self.interface.ToggleSystemDialog()
        return 
1

    
    def BINARY_LoverInfo
(selfnamelovePoint):
        if 
self.interface.wndMessenger:
            
self.interface.wndMessenger.OnAddLover(namelovePoint)
        
        if 
self.affectShower:
            
self.affectShower.SetLoverInfo(namelovePoint)
        

    
    
def BINARY_UpdateLovePoint(selflovePoint):
        if 
self.interface.wndMessenger:
            
self.interface.wndMessenger.OnUpdateLovePoint(lovePoint)
        
        if 
self.affectShower:
            
self.affectShower.OnUpdateLovePoint(lovePoint)
        

    
    
def BINARY_OnQuestConfirm(selfmsgtimeoutpid):
        
confirmDialog uiCommon.QuestionDialogWithTimeLimit()
        
confirmDialog.Open(msgtimeout)
        
confirmDialog.SetAcceptEvent(lambda answer TRUEpid pid: if not net.SendQuestConfirmPacket(answerpid):
passself.confirmDialog.Hide())
        
confirmDialog.SetCancelEvent(lambda answer FALSEpid pid: if not net.SendQuestConfirmPacket(answerpid):
passself.confirmDialog.Hide())
        
self.confirmDialog confirmDialog

    
    def BINARY_Cube_Open
(self):
        
self.interface.OpenCubeWindow()

    
    
def BINARY_Cube_Close(self):
        
self.interface.CloseCubeWindow()

    
    
def BINARY_Cube_Succeed(selfitemVnumcount):
        
log('CUBE_SUCCESS')
        
self.interface.SucceedCubeWork(itemVnumcount)

    
    
def BINARY_Cube_Failed(self):
        
log('CUBE_FAIL')

    
    
def BINARY_SetBigMessage(selfmessage):
        
self.interface.bigBoard.SetTip(message)

    
    
def BINARY_SetTipMessage(selfmessage):
        
self.interface.tipBoard.SetTip(message)

    
    
def BINARY_AppendNotifyMessage(selftype):
        if 
type not in locale.NOTIFY_MESSAGE:
            return 
None
        
        chat
.AppendChat(chat.CHAT_TYPE_INFOlocale.NOTIFY_MESSAGE[type])

    
    
def BINARY_Guild_EnterGuildArea(selfareaID):
        
self.interface.BULID_EnterGuildArea(areaID)

    
    
def BINARY_Guild_ExitGuildArea(selfareaID):
        
self.interface.BULID_ExitGuildArea(areaID)

    
    
def BINARY_GuildWar_OnSendDeclare(selfguildID):
        
pass

    
    def BINARY_GuildWar_OnRecvDeclare
(selfguildIDwarType):
        
mainCharacterName player.GetMainCharacterName()
        
masterName guild.GetGuildMasterName()
        if 
mainCharacterName == masterName:
            
self._GameWindow__GuildWar_OpenAskDialog(guildIDwarType)
        

    
    
def BINARY_GuildWar_OnRecvPoint(selfgainGuildIDopponentGuildIDpoint):
        
self.interface.OnRecvGuildWarPoint(gainGuildIDopponentGuildIDpoint)

    
    
def BINARY_GuildWar_OnStart(selfguildSelfguildOpp):
        
self.interface.OnStartGuildWar(guildSelfguildOpp)

    
    
def BINARY_GuildWar_OnEnd(selfguildSelfguildOpp):
        
self.interface.OnEndGuildWar(guildSelfguildOpp)

    
    
def BINARY_BettingGuildWar_SetObserverMode(selfisEnable):
        
self.interface.BINARY_SetObserverMode(isEnable)

    
    
def BINARY_BettingGuildWar_UpdateObserverCount(selfobserverCount):
        
self.interface.wndMiniMap.UpdateObserverCount(observerCount)

    
    
def _GameWindow__GuildWar_UpdateMemberCount(selfguildID1memberCount1guildID2memberCount2observerCount):
        
guildID1 int(guildID1)
        
guildID2 int(guildID2)
        
memberCount1 int(memberCount1)
        
memberCount2 int(memberCount2)
        
observerCount int(observerCount)
        
self.interface.UpdateMemberCount(guildID1memberCount1guildID2memberCount2)
        
self.interface.wndMiniMap.UpdateObserverCount(observerCount)

    
    
def _GameWindow__GuildWar_OpenAskDialog(selfguildIDwarType):
        
guildName guild.GetGuildName(guildID)
        if 
'Noname' == guildName:
            return 
None
        
        import uiGuild
        questionDialog 
uiGuild.AcceptGuildWarDialog()
        
questionDialog.SAFE_SetAcceptEvent(self._GameWindow__GuildWar_OnAccept)
        
questionDialog.SAFE_SetCancelEvent(self._GameWindow__GuildWar_OnDecline)
        
questionDialog.Open(guildNamewarType)
        
self.guildWarQuestionDialog questionDialog

    
    def _GameWindow__GuildWar_CloseAskDialog
(self):
        
self.guildWarQuestionDialog.Close()
        
self.guildWarQuestionDialog None

    
    def _GameWindow__GuildWar_OnAccept
(self):
        
guildName self.guildWarQuestionDialog.GetGuildName()
        
net.SendChatPacket('/war ' guildName)
        
self._GameWindow__GuildWar_CloseAskDialog()
        return 
1

    
    def _GameWindow__GuildWar_OnDecline
(self):
        
guildName self.guildWarQuestionDialog.GetGuildName()
        
net.SendChatPacket('/nowar ' guildName)
        
self._GameWindow__GuildWar_CloseAskDialog()
        return 
1

    
    def _GameWindow__ServerCommand_Build
(self):
        
serverCommandList = {
            
'ConsoleEnable'self._GameWindow__Console_Enable,
            
'DayMode'self._GameWindow__DayMode_Update,
            
'PRESERVE_DayMode'self._GameWindow__PRESERVE_DayMode_Update,
            
'CloseRestartWindow'self._GameWindow__RestartDialog_Close,
            
'OpenPrivateShop'self._GameWindow__PrivateShop_Open,
            
'PartyHealReady'self.PartyHealReady,
            
'ShowMeSafeboxPassword'self.AskSafeboxPassword,
            
'CloseSafebox'self.CommandCloseSafebox,
            
'CloseMall'self.CommandCloseMall,
            
'ShowMeMallPassword'self.AskMallPassword,
            
'item_mall'self._GameWindow__ItemMall_Open,
            
'RefineSuceeded'self.RefineSuceededMessage,
            
'RefineFailed'self.RefineFailedMessage,
            
'xmas_snow'self._GameWindow__XMasSnow_Enable,
            
'xmas_boom'self._GameWindow__XMasBoom_Enable,
            
'xmas_song'self._GameWindow__XMasSong_Enable,
            
'xmas_tree'self._GameWindow__XMasTree_Enable,
            
'newyear_boom'self._GameWindow__XMasBoom_Enable,
            
'PartyRequest'self._GameWindow__PartyRequestQuestion,
            
'PartyRequestDenied'self._GameWindow__PartyRequestDenied,
            
'horse_state'self._GameWindow__Horse_UpdateState,
            
'hide_horse_state'self._GameWindow__Horse_HideState,
            
'WarUC'self._GameWindow__GuildWar_UpdateMemberCount,
            
'test_server'self._GameWindow__EnableTestServerFlag,
            
'mall'self._GameWindow__InGameShop_Show,
            
'lover_login'self._GameWindow__LoginLover,
            
'lover_logout'self._GameWindow__LogoutLover,
            
'lover_near'self._GameWindow__LoverNear,
            
'lover_far'self._GameWindow__LoverFar,
            
'lover_divorce'self._GameWindow__LoverDivorce,
            
'PlayMusic'self._GameWindow__PlayMusic,
            
'MyShopPriceList'self._GameWindow__PrivateShop_PriceList }
        
self.serverCommander stringCommander.Analyzer()
        for 
serverCommandItem in serverCommandList.items():
            
self.serverCommander.SAFE_RegisterCallBack(serverCommandItem[0], serverCommandItem[1])

    
    
def BINARY_ServerCommand_Run(selfline):
        
        try:
            
log('BINARY_ServerCommand_Run ' line)
            return 
self.serverCommander.Run(line)
        
except RuntimeError:
            
msg None
            dbg
.TraceError(msg)
            return 
0


    
    def _GameWindow__ProcessPreservedServerCommand
(self):
        
        try:
            
command net.GetPreservedServerCommand()
            while 
command:
                
log(' __ProcessPreservedServerCommand ' command)
                
self.serverCommander.Run(command)
                
command net.GetPreservedServerCommand()
        
except RuntimeError:
            
msg None
            dbg
.TraceError(msg)
            return 
0


    
    def PartyHealReady
(self):
        
self.interface.PartyHealReady()

    
    
def AskSafeboxPassword(self):
        
self.interface.AskSafeboxPassword()

    
    
def AskMallPassword(self):
        
self.interface.AskMallPassword()

    
    
def _GameWindow__ItemMall_Open(self):
        
self.interface.OpenItemMall()

    
    
def CommandCloseMall(self):
        
self.interface.CommandCloseMall()

    
    
def RefineSuceededMessage(self):
        
snd.PlaySound('sound/ui/make_soket.wav')
        
self.PopupMessage('The advancement of the Item was successful.')

    
    
def RefineFailedMessage(self):
        
snd.PlaySound('sound/ui/jaeryun_fail.wav')
        
self.PopupMessage('You failed.')

    
    
def CommandCloseSafebox(self):
        
self.interface.CommandCloseSafebox()

    
    
def _GameWindow__PrivateShop_PriceList(selfitemVNumitemPrice):
        
uiPrivateShopBuilder.SetPrivateShopItemPrice(itemVNumitemPrice)

    
    
def _GameWindow__Horse_HideState(self):
        
self.affectShower.SetHorseState(000)

    
    
def _GameWindow__Horse_UpdateState(selflevelhealthbattery):
        
self.affectShower.SetHorseState(int(level), int(health), int(battery))

    
    
def _GameWindow__IsXMasMap(self):
        
mapDict = ('metin2_map_n_flame_01''metin2_map_n_desert_01''metin2_map_spiderdungeon''metin2_map_deviltower1''season1/metin2_map_spiderdungeon_02''metin2_map_spiderdungeon_03''metin2_map_monkeydungeon''metin2_map_monkeydungeon_02''metin2_map_devilsCatacomb''metin2_map_skipia_dungeon_boss''metin2_map_skipia_dungeon_01''metin2_map_skipia_dungeon_02''metin2_map_monkeydungeon_03')
        if 
background.GetCurrentMapName() in mapDict:
            return 
0
        
        
return 1

    
    def _GameWindow__XMasSnow_Enable
(selfmode):
        
self._GameWindow__XMasSong_Enable(mode)
        if 
'1' == mode:
            if 
not self._GameWindow__IsXMasMap():
                return 
None
            
            log
('XMAS_SNOW ON')
            
background.EnableSnow(1)
        else:
            
log('XMAS_SNOW OFF')
            
background.EnableSnow(0)

    
    
def _GameWindow__XMasBoom_Enable(selfmode):
        if 
'1' == mode:
            if 
not self._GameWindow__IsXMasMap():
                return 
None
            
            log
('XMAS_BOOM ON')
            
self._GameWindow__DayMode_Update('dark')
            
self.enableXMasBoom 1
            self
.startTimeXMasBoom app.GetTime()
        else:
            
log('XMAS_BOOM OFF')
            
self._GameWindow__DayMode_Update('light')
            
self.enableXMasBoom 0

    
    def _GameWindow__XMasTree_Enable
(selfgrade):
        
log('XMAS_TREE ' grade)
        
background.SetXMasTree(int(grade))

    
    
def _GameWindow__XMasSong_Enable(selfmode):
        if 
'1' == mode:
            
log('XMAS_SONG ON')
            
XMAS_BGM 'xmas.mp3'
            
if app.IsExistFile('BGM/' XMAS_BGM) == 1:
                if 
musicInfo.fieldMusic != '':
                    
snd.FadeOutMusic('BGM/' musicInfo.fieldMusic)
                
                
musicInfo.fieldMusic XMAS_BGM
                snd
.FadeInMusic('BGM/' musicInfo.fieldMusic)
            
        else:
            
log('XMAS_SONG OFF')
            if 
musicInfo.fieldMusic != '':
                
snd.FadeOutMusic('BGM/' musicInfo.fieldMusic)
            
            
musicInfo.fieldMusic musicInfo.METIN2THEMA
            snd
.FadeInMusic('BGM/' musicInfo.fieldMusic)

    
    
def _GameWindow__RestartDialog_Close(self):
        
self.interface.CloseRestartDialog()

    
    
def _GameWindow__Console_Enable(self):
        
constInfo.CONSOLE_ENABLE 1
        self
.consoleEnable 1
        app
.EnableSpecialCameraMode()
        
ui.EnablePaste(1)

    
    
def _GameWindow__PrivateShop_Open(self):
        
self.interface.OpenPrivateShopInputNameDialog()

    
    
def BINARY_PrivateShop_Appear(selfvidtext):
        
self.interface.AppearPrivateShop(vidtext)

    
    
def BINARY_PrivateShop_Disappear(selfvid):
        
self.interface.DisappearPrivateShop(vid)

    
    
def _GameWindow__PRESERVE_DayMode_Update(selfmode):
        if 
'light' == mode:
            
background.SetEnvironmentData(0)
        
elif 'dark' == mode:
            if 
not self._GameWindow__IsXMasMap():
                return 
None
            
            background
.RegisterEnvironmentData(1constInfo.ENVIRONMENT_NIGHT)
            
background.SetEnvironmentData(1)
        

    
    
def _GameWindow__DayMode_Update(selfmode):
        if 
'light' == mode:
            
self.curtain.SAFE_FadeOut(self._GameWindow__DayMode_OnCompleteChangeToLight)
        
elif 'dark' == mode:
            if 
not self._GameWindow__IsXMasMap():
                return 
None
            
            self
.curtain.SAFE_FadeOut(self._GameWindow__DayMode_OnCompleteChangeToDark)
        

    
    
def _GameWindow__DayMode_OnCompleteChangeToLight(self):
        
background.SetEnvironmentData(0)
        
self.curtain.FadeIn()

    
    
def _GameWindow__DayMode_OnCompleteChangeToDark(self):
        
background.RegisterEnvironmentData(1constInfo.ENVIRONMENT_NIGHT)
        
background.SetEnvironmentData(1)
        
self.curtain.FadeIn()

    
    
def _GameWindow__XMasBoom_Update(self):
        
self.BOOM_DATA_LIST = ((25), (52), (73), (103), (205))
        if 
self.indexXMasBoom >= len(self.BOOM_DATA_LIST):
            return 
None
        
        boomTime 
self.BOOM_DATA_LIST[self.indexXMasBoom][0]
        
boomCount self.BOOM_DATA_LIST[self.indexXMasBoom][1]
        if 
app.GetTime() - self.startTimeXMasBoom boomTime:
            
self.indexXMasBoom += 1
            
for i in xrange(boomCount):
                
self._GameWindow__XMasBoom_Boom()
        

    
    
def _GameWindow__XMasBoom_Boom(self):
        (
xyz) = player.GetMainCharacterPosition()
        
randX app.GetRandom(-150150)
        
randY app.GetRandom(-150150)
        
snd.PlaySound3D(randX, -randYz'sound/common/etc/salute.mp3')

    
    
def _GameWindow__PartyRequestQuestion(selfvid):
        
vid int(vid)
        
partyRequestQuestionDialog uiCommon.QuestionDialog()
        
partyRequestQuestionDialog.SetText(chr.GetNameByVID(vid) + '%s invited you to the party.')
        
partyRequestQuestionDialog.SetAcceptText('Accept')
        
partyRequestQuestionDialog.SetCancelText('Decline')
        
partyRequestQuestionDialog.SetAcceptEvent(lambda arg TRUEself._GameWindow__AnswerPartyRequest(arg))
        
partyRequestQuestionDialog.SetCancelEvent(lambda arg FALSEself._GameWindow__AnswerPartyRequest(arg))
        
partyRequestQuestionDialog.Open()
        
partyRequestQuestionDialog.vid vid
        self
.partyRequestQuestionDialog partyRequestQuestionDialog

    
    def _GameWindow__AnswerPartyRequest
(selfanswer):
        if 
not (self.partyRequestQuestionDialog):
            return 
None
        
        vid 
self.partyRequestQuestionDialog.vid
        
if answer:
            
net.SendChatPacket('/party_request_accept ' str(vid))
        else:
            
net.SendChatPacket('/party_request_deny ' str(vid))
        
self.partyRequestQuestionDialog.Close()
        
self.partyRequestQuestionDialog None

    
    def _GameWindow__PartyRequestDenied
(self):
        
self.PopupMessage('You discarded the invitation into the group..')

    
    
def _GameWindow__EnableTestServerFlag(self):
        
app.EnableTestServerFlag()

    
    
def _GameWindow__InGameShop_Show(selfurl):
        if 
constInfo.IN_GAME_SHOP_ENABLE:
            
self.interface.OpenWebWindow(url)
        

    
    
def _GameWindow__LoginLover(self):
        if 
self.interface.wndMessenger:
            
self.interface.wndMessenger.OnLoginLover()
        

    
    
def _GameWindow__LogoutLover(self):
        if 
self.interface.wndMessenger:
            
self.interface.wndMessenger.OnLogoutLover()
        
        if 
self.affectShower:
            
self.affectShower.HideLoverState()
        

    
    
def _GameWindow__LoverNear(self):
        if 
self.affectShower:
            
self.affectShower.ShowLoverState()
        

    
    
def _GameWindow__LoverFar(self):
        if 
self.affectShower:
            
self.affectShower.HideLoverState()
        

    
    
def _GameWindow__LoverDivorce(self):
        if 
self.interface.wndMessenger:
            
self.interface.wndMessenger.ClearLoverInfo()
        
        if 
self.affectShower:
            
self.affectShower.ClearLoverState()
        

    
    
def _GameWindow__PlayMusic(selfflagfilename):
        
flag int(flag)
        if 
flag:
            
snd.FadeOutAllMusic()
            
musicInfo.SaveLastPlayFieldMusic()
            
snd.FadeInMusic('BGM/' filename)
        else:
            
snd.FadeOutAllMusic()
            
musicInfo.LoadLastPlayFieldMusic()
            
snd.FadeInMusic('BGM/' musicInfo.fieldMusic


... lesen bildet versuch die game wieder zu compilen und dann schreib nochmal
07/27/2013 15:30 Ocelot2606#89
Quote:
Originally Posted by mamAmok View Post
... lesen bildet versuch die game wieder zu compilen und dann schreib nochmal
Sry falsch gelesen zum Compilen kann ich nichts sagen da ich kein Python installiert habe und somit das compilieren nicht geht :D
07/27/2013 15:47 mamAmok#90
Quote:
Originally Posted by Ocelot2606 View Post
Sry falsch gelesen zum Compilen kann ich nichts sagen da ich kein Python installiert habe und somit das compilieren nicht geht :D
jo decompile geht alles aber wieder compilen nicht alles ^^