1. import chr
  2. import chrmgr
  3. import skill
  4. import net
  5. import item
  6. import player
  7. import effect
  8. import constInfo
  9. import localeInfo
  10. import emotion
  11. import app
  12. JOB_WARRIOR = 0
  13. JOB_ASSASSIN = 1
  14. JOB_SURA = 2
  15. JOB_SHAMAN = 3
  16. RACE_WARRIOR_M = 0
  17. RACE_ASSASSIN_W = 1
  18. RACE_SURA_M = 2
  19. RACE_SHAMAN_W = 3
  20. RACE_WARRIOR_W = 4
  21. RACE_ASSASSIN_M = 5
  22. RACE_SURA_W = 6
  23. RACE_SHAMAN_M = 7
  24. COMBO_TYPE_1 = 0
  25. COMBO_TYPE_2 = 1
  26. COMBO_TYPE_3 = 2
  27. COMBO_INDEX_1 = 0
  28. COMBO_INDEX_2 = 1
  29. COMBO_INDEX_3 = 2
  30. COMBO_INDEX_4 = 3
  31. COMBO_INDEX_5 = 4
  32. COMBO_INDEX_6 = 5
  33. HORSE_SKILL_WILDATTACK = chr.MOTION_SKILL+121
  34. HORSE_SKILL_CHARGE = chr.MOTION_SKILL+122
  35. HORSE_SKILL_SPLASH = chr.MOTION_SKILL+123
  36. GUILD_SKILL_DRAGONBLOOD = chr.MOTION_SKILL+101
  37. GUILD_SKILL_DRAGONBLESS = chr.MOTION_SKILL+102
  38. GUILD_SKILL_BLESSARMOR = chr.MOTION_SKILL+103
  39. GUILD_SKILL_SPPEDUP = chr.MOTION_SKILL+104
  40. GUILD_SKILL_DRAGONWRATH = chr.MOTION_SKILL+105
  41. GUILD_SKILL_MAGICUP = chr.MOTION_SKILL+106
  42. PASSIVE_GUILD_SKILL_INDEX_LIST = ( 151, )
  43. ACTIVE_GUILD_SKILL_INDEX_LIST = ( 152, 153, 154, 155, 156, 157, )
  44. NEW_678TH_SKILL_ENABLE = 1
  45. SKILL_INDEX_DICT = []
  46. def DefineSkillIndexDict():
  47. global NEW_678TH_SKILL_ENABLE
  48. global SKILL_INDEX_DICT
  49. if NEW_678TH_SKILL_ENABLE:
  50. SKILL_INDEX_DICT = {
  51. JOB_WARRIOR : {1 : (1, 2, 3, 4, 5, 6, 0, 0, 137, 0, 138, 0, 139, 0,), 2 : (16, 17, 18, 19, 20, 21, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,),},
  52. JOB_ASSASSIN : {1 : (31, 32, 33, 34, 35, 36, 0, 0, 137, 0, 138, 0, 139, 0, 140,), 2 : (46, 47, 48, 49, 50, 51, 0, 0, 137, 0, 138, 0, 139, 0, 140,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,),},
  53. JOB_SURA : {1 : (61, 62, 63, 64, 65, 66, 0, 0, 137, 0, 138, 0, 139, 0,), 2 : (76, 77, 78, 79, 80, 81, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,),},
  54. JOB_SHAMAN : {1 : (91, 92, 93, 94, 95, 96, 0, 0, 137, 0, 138, 0, 139, 0,), 2 : (106, 107, 108, 109, 110, 111, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,),},
  55. # JOB_WOLFMAN : {1 : (170, 171, 172, 173, 174, 175, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,),}
  56. }
  57. else:
  58. SKILL_INDEX_DICT = {
  59. JOB_WARRIOR : {1 : (1, 2, 3, 4, 5, 0, 0, 0, 137, 0, 138, 0, 139, 0,), 2 : (16, 17, 18, 19, 20, 0, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,),},
  60. JOB_ASSASSIN : {1 : (31, 32, 33, 34, 35, 0, 0, 0, 137, 0, 138, 0, 139, 0, 140,), 2 : (46, 47, 48, 49, 50, 0, 0, 0, 137, 0, 138, 0, 139, 0, 140,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,),},
  61. JOB_SURA : {1 : (61, 62, 63, 64, 65, 66, 0, 0, 137, 0, 138, 0, 139, 0,), 2 : (76, 77, 78, 79, 80, 81, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,),},
  62. JOB_SHAMAN : {1 : (91, 92, 93, 94, 95, 96, 0, 0, 137, 0, 138, 0, 139, 0,), 2 : (106, 107, 108, 109, 110, 111, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,),},
  63. # JOB_WOLFMAN : {1 : (170, 171, 172, 173, 174, 175, 0, 0, 137, 0, 138, 0, 139, 0,), "SUPPORT" : (122, 123, 121, 124, 125, 129, 0, 0, 130, 131,),}
  64. }
  65. def RegisterSkill(race, group, empire=0):
  66. DefineSkillIndexDict()
  67. job = chr.RaceToJob(race)
  68. ## Character Skill
  69. if SKILL_INDEX_DICT.has_key(job):
  70. if SKILL_INDEX_DICT[job].has_key(group):
  71. activeSkillList = SKILL_INDEX_DICT[job][group]
  72. for i in xrange(len(activeSkillList)):
  73. skillIndex = activeSkillList[i]
  74. ## 7번 8번 스킬은 여기서 설정하면 안됨
  75. if i != 6 and i != 7:
  76. player.SetSkill(i+1, skillIndex)
  77. supportSkillList = SKILL_INDEX_DICT[job]["SUPPORT"]
  78. for i in xrange(len(supportSkillList)):
  79. player.SetSkill(i+100+1, supportSkillList[i])
  80. ## Language Skill
  81. if 0 != empire:
  82. languageSkillList = []
  83. for i in xrange(3):
  84. if (i+1) != empire:
  85. languageSkillList.append(player.SKILL_INDEX_LANGUAGE1+i)
  86. for i in xrange(len(languageSkillList)):
  87. player.SetSkill(107+i, languageSkillList[i])
  88. ## Guild Skill
  89. for i in xrange(len(PASSIVE_GUILD_SKILL_INDEX_LIST)):
  90. player.SetSkill(200+i, PASSIVE_GUILD_SKILL_INDEX_LIST[i])
  91. for i in xrange(len(ACTIVE_GUILD_SKILL_INDEX_LIST)):
  92. player.SetSkill(210+i, ACTIVE_GUILD_SKILL_INDEX_LIST[i])
  93. def RegisterSkillAt(race, group, pos, num):
  94. DefineSkillIndexDict()
  95. job = chr.RaceToJob(race)
  96. tmp = list(SKILL_INDEX_DICT[job][group])
  97. tmp[pos] = num
  98. SKILL_INDEX_DICT[job][group] = tuple(tmp)
  99. player.SetSkill(pos+1, num)
  100. FACE_IMAGE_DICT = {
  101. RACE_WARRIOR_M : "d:/ymir work/ui/game/windows/face_warrior.sub",
  102. RACE_ASSASSIN_W : "d:/ymir work/ui/game/windows/face_assassin.sub",
  103. RACE_SURA_M : "d:/ymir work/ui/game/windows/face_sura.sub",
  104. RACE_SHAMAN_W : "d:/ymir work/ui/game/windows/face_shaman.sub",
  105. }
  106. isInitData=0
  107. def SetGeneralMotions(mode, folder):
  108. chrmgr.SetPathName(folder)
  109. chrmgr.RegisterMotionMode(mode)
  110. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_WAIT, "wait.msa")
  111. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_WALK, "walk.msa")
  112. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_RUN, "run.msa")
  113. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_DAMAGE, "damage.msa", 50)
  114. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_DAMAGE, "damage_1.msa", 50)
  115. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_DAMAGE_BACK, "damage_2.msa", 50)
  116. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_DAMAGE_BACK, "damage_3.msa", 50)
  117. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_DAMAGE_FLYING, "damage_flying.msa")
  118. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_STAND_UP, "falling_stand.msa")
  119. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_DAMAGE_FLYING_BACK, "back_damage_flying.msa")
  120. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_STAND_UP_BACK, "back_falling_stand.msa")
  121. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_DEAD, "dead.msa")
  122. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_DIG, "dig.msa")
  123. def SetIntroMotions(mode, folder):
  124. chrmgr.SetPathName(folder)
  125. chrmgr.RegisterMotionMode(mode)
  126. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_INTRO_WAIT, "wait.msa")
  127. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_INTRO_SELECTED, "selected.msa")
  128. chrmgr.RegisterCacheMotionData(mode, chr.MOTION_INTRO_NOT_SELECTED, "not_selected.msa")
  129. def __InitData():
  130. global isInitData
  131. if isInitData:
  132. return
  133. isInitData = 1
  134. chrmgr.SetDustGap(250)
  135. chrmgr.SetHorseDustGap(500)
  136. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_DUST, "", "d:/ymir work/effect/etc/dust/dust.mse")
  137. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_HORSE_DUST, "", "d:/ymir work/effect/etc/dust/running_dust.mse")
  138. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_HIT, "", "d:/ymir work/effect/hit/blow_1/blow_1_low.mse")
  139. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_HPUP_RED, "", "d:/ymir work/effect/etc/recuperation/drugup_red.mse")
  140. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_SPUP_BLUE, "", "d:/ymir work/effect/etc/recuperation/drugup_blue.mse")
  141. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_SPEEDUP_GREEN, "", "d:/ymir work/effect/etc/recuperation/drugup_green.mse")
  142. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_DXUP_PURPLE, "", "d:/ymir work/effect/etc/recuperation/drugup_purple.mse")
  143. #자동물약 HP, SP
  144. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_AUTO_HPUP, "", "d:/ymir work/effect/etc/recuperation/autodrugup_red.mse")
  145. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_AUTO_SPUP, "", "d:/ymir work/effect/etc/recuperation/autodrugup_blue.mse")
  146. #라마단 초승달의 반지(71135) 착용순간 발동 이펙트
  147. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_RAMADAN_RING_EQUIP, "", "d:/ymir work/effect/etc/buff/buff_item1.mse")
  148. #할로윈 사탕 착용순간 발동 이펙트
  149. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_HALLOWEEN_CANDY_EQUIP, "", "d:/ymir work/effect/etc/buff/buff_item2.mse")
  150. #행복의 반지 착용순간 발동 이펙트
  151. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_HAPPINESS_RING_EQUIP, "", "d:/ymir work/effect/etc/buff/buff_item3.mse")
  152. #사랑의 팬던트 착용순간 발동 이펙트
  153. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_LOVE_PENDANT_EQUIP, "", "d:/ymir work/effect/etc/buff/buff_item4.mse")
  154. if app.VERSION_162_ENABLED:
  155. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_HEALER, "", "d:/ymir work/effect/monster2/healer/healer_effect.mse")
  156. if app.ENABLE_SASH_SYSTEM:
  157. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_SASH_SUCCEDED, "", "d:/ymir work/effect/etc/buff/buff_item6.mse")
  158. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_SASH_EQUIP, "", "d:/ymir work/effect/etc/buff/buff_item7.mse")
  159. if app.ENABLE_MOUNT_SYSTEM:
  160. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_1, "", "d:/ymir work/effect/etc/buff/mount_1.mse")
  161. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_2, "", "d:/ymir work/effect/etc/buff/mount_2.mse")
  162. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_3, "", "d:/ymir work/effect/etc/buff/mount_3.mse")
  163. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_4, "", "d:/ymir work/effect/etc/buff/mount_4.mse")
  164. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_5, "", "d:/ymir work/effect/etc/buff/mount_5.mse")
  165. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_6, "", "d:/ymir work/effect/etc/buff/mount_6.mse")
  166. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_7, "", "d:/ymir work/effect/etc/buff/mount_7.mse")
  167. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_8, "", "d:/ymir work/effect/etc/buff/mount_8.mse")
  168. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_9, "", "d:/ymir work/effect/etc/buff/mount_9.mse")
  169. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_10, "", "d:/ymir work/effect/etc/buff/mount_10.mse")
  170. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_11, "", "d:/ymir work/effect/etc/buff/mount_11.mse")
  171. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_12, "", "d:/ymir work/effect/etc/buff/mount_12.mse")
  172. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_13, "", "d:/ymir work/effect/etc/buff/mount_13.mse")
  173. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_14, "", "d:/ymir work/effect/etc/buff/mount_14.mse")
  174. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_15, "", "d:/ymir work/effect/etc/buff/mount_15.mse")
  175. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_16, "", "d:/ymir work/effect/etc/buff/mount_16.mse")
  176. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_17, "", "d:/ymir work/effect/etc/buff/mount_17.mse")
  177. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_18, "", "d:/ymir work/effect/etc/buff/mount_18.mse")
  178. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_19, "", "d:/ymir work/effect/etc/buff/mount_19.mse")
  179. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_20, "", "d:/ymir work/effect/etc/buff/mount_20.mse")
  180. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_21, "", "d:/ymir work/effect/etc/buff/mount_21.mse")
  181. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_22, "", "d:/ymir work/effect/etc/buff/mount_22.mse")
  182. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_23, "", "d:/ymir work/effect/etc/buff/mount_23.mse")
  183. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_24, "", "d:/ymir work/effect/etc/buff/mount_24.mse")
  184. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_25, "", "d:/ymir work/effect/etc/buff/mount_25.mse")
  185. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_26, "", "d:/ymir work/effect/etc/buff/mount_26.mse")
  186. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_27, "", "d:/ymir work/effect/etc/buff/mount_27.mse")
  187. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_28, "", "d:/ymir work/effect/etc/buff/mount_28.mse")
  188. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_29, "", "d:/ymir work/effect/etc/buff/mount_29.mse")
  189. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_30, "", "d:/ymir work/effect/etc/buff/mount_30.mse")
  190. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_31, "", "d:/ymir work/effect/etc/buff/mount_31.mse")
  191. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_32, "", "d:/ymir work/effect/etc/buff/mount_32.mse")
  192. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_33, "", "d:/ymir work/effect/etc/buff/mount_33.mse")
  193. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_34, "", "d:/ymir work/effect/etc/buff/mount_34.mse")
  194. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_35, "", "d:/ymir work/effect/etc/buff/mount_35.mse")
  195. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_36, "", "d:/ymir work/effect/etc/buff/mount_36.mse")
  196. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_37, "", "d:/ymir work/effect/etc/buff/mount_37.mse")
  197. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_38, "", "d:/ymir work/effect/etc/buff/mount_38.mse")
  198. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_39, "", "d:/ymir work/effect/etc/buff/mount_39.mse")
  199. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_40, "", "d:/ymir work/effect/etc/buff/mount_40.mse")
  200. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_41, "", "d:/ymir work/effect/etc/buff/mount_41.mse")
  201. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_42, "", "d:/ymir work/effect/etc/buff/mount_42.mse")
  202. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_43, "", "d:/ymir work/effect/etc/buff/mount_43.mse")
  203. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_44, "", "d:/ymir work/effect/etc/buff/mount_44.mse")
  204. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_45, "", "d:/ymir work/effect/etc/buff/mount_45.mse")
  205. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_46, "", "d:/ymir work/effect/etc/buff/mount_46.mse")
  206. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_47, "", "d:/ymir work/effect/etc/buff/mount_47.mse")
  207. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_48, "", "d:/ymir work/effect/etc/buff/mount_48.mse")
  208. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_49, "", "d:/ymir work/effect/etc/buff/mount_49.mse")
  209. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_50, "", "d:/ymir work/effect/etc/buff/mount_50.mse")
  210. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_51, "", "d:/ymir work/effect/etc/buff/mount_51.mse")
  211. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_52, "", "d:/ymir work/effect/etc/buff/mount_52.mse")
  212. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_53, "", "d:/ymir work/effect/etc/buff/mount_53.mse")
  213. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_54, "", "d:/ymir work/effect/etc/buff/mount_54.mse")
  214. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_55, "", "d:/ymir work/effect/etc/buff/mount_55.mse")
  215. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_56, "", "d:/ymir work/effect/etc/buff/mount_56.mse")
  216. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_57, "", "d:/ymir work/effect/etc/buff/mount_57.mse")
  217. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_58, "", "d:/ymir work/effect/etc/buff/mount_58.mse")
  218. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_59, "", "d:/ymir work/effect/etc/buff/mount_59.mse")
  219. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_60, "", "d:/ymir work/effect/etc/buff/mount_60.mse")
  220. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MOUNT_61, "", "d:/ymir work/effect/etc/buff/mount_61.mse")
  221. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_PENETRATE, "Bip01", "d:/ymir work/effect/hit/gwantong.mse")
  222. #chrmgr.RegisterCacheEffect(chrmgr.EFFECT_BLOCK, "", "d:/ymir work/effect/etc/")
  223. #chrmgr.RegisterCacheEffect(chrmgr.EFFECT_DODGE, "", "d:/ymir work/effect/etc/")
  224. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_FIRECRACKER, "", "d:/ymir work/effect/etc/firecracker/newyear_firecracker.mse")
  225. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_SPIN_TOP, "", "d:/ymir work/effect/etc/firecracker/paing_i.mse")
  226. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_SELECT, "", "d:/ymir work/effect/etc/click/click_select.mse")
  227. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_TARGET, "", "d:/ymir work/effect/etc/click/click_glow_select.mse")
  228. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_STUN, "Bip01 Head", "d:/ymir work/effect/etc/stun/stun.mse")
  229. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_CRITICAL, "Bip01 R Hand", "d:/ymir work/effect/hit/critical.mse")
  230. player.RegisterCacheEffect(player.EFFECT_PICK, "d:/ymir work/effect/etc/click/click.mse")
  231. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_DAMAGE_TARGET, "", "d:/ymir work/effect/affect/damagevalue/target.mse")
  232. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_DAMAGE_NOT_TARGET, "", "d:/ymir work/effect/affect/damagevalue/nontarget.mse")
  233. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_DAMAGE_SELFDAMAGE, "", "d:/ymir work/effect/affect/damagevalue/damage.mse")
  234. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_DAMAGE_SELFDAMAGE2, "", "d:/ymir work/effect/affect/damagevalue/damage_1.mse")
  235. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_DAMAGE_POISON, "", "d:/ymir work/effect/affect/damagevalue/poison.mse")
  236. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_DAMAGE_MISS, "", "d:/ymir work/effect/affect/damagevalue/miss.mse")
  237. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_DAMAGE_TARGETMISS, "", "d:/ymir work/effect/affect/damagevalue/target_miss.mse")
  238. #chrmgr.RegisterCacheEffect(chrmgr.EFFECT_DAMAGE_CRITICAL, "", "d:/ymir work/effect/affect/damagevalue/critical.mse")
  239. #chrmgr.RegisterCacheEffect(chrmgr.EFFECT_SUCCESS, "", "season1/effect/success.mse")
  240. #chrmgr.RegisterCacheEffect(chrmgr.EFFECT_FAIL, "", "season1/effect/fail.mse")
  241. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_LEVELUP_ON_14_FOR_GERMANY, "","season1/effect/paymessage_warning.mse") #레벨업 14일때 ( 독일전용 )
  242. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_LEVELUP_UNDER_15_FOR_GERMANY, "", "season1/effect/paymessage_decide.mse" )#레벨업 15일때 ( 독일전용 )
  243. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_PERCENT_DAMAGE1, "", "d:/ymir work/effect/hit/percent_damage1.mse")
  244. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_PERCENT_DAMAGE2, "", "d:/ymir work/effect/hit/percent_damage2.mse")
  245. chrmgr.RegisterCacheEffect(chrmgr.EFFECT_PERCENT_DAMAGE3, "", "d:/ymir work/effect/hit/percent_damage3.mse")
  246. ##############
  247. # WARRIOR
  248. ##############
  249. chrmgr.CreateRace(RACE_WARRIOR_M)
  250. chrmgr.SelectRace(RACE_WARRIOR_M)
  251. chrmgr.LoadLocalRaceData("warrior_m.msm")
  252. SetIntroMotions(chr.MOTION_MODE_GENERAL, "d:/ymir work/pc/warrior/intro/")
  253. chrmgr.CreateRace(RACE_WARRIOR_W)
  254. chrmgr.SelectRace(RACE_WARRIOR_W)
  255. chrmgr.LoadLocalRaceData("warrior_w.msm")
  256. SetIntroMotions(chr.MOTION_MODE_GENERAL, "d:/ymir work/pc2/warrior/intro/")
  257. ##############
  258. # ASSASSIN
  259. ##############
  260. chrmgr.CreateRace(RACE_ASSASSIN_W)
  261. chrmgr.SelectRace(RACE_ASSASSIN_W)
  262. chrmgr.LoadLocalRaceData("assassin_w.msm")
  263. SetIntroMotions(chr.MOTION_MODE_GENERAL, "d:/ymir work/pc/assassin/intro/")
  264. chrmgr.CreateRace(RACE_ASSASSIN_M)
  265. chrmgr.SelectRace(RACE_ASSASSIN_M)
  266. chrmgr.LoadLocalRaceData("assassin_m.msm")
  267. SetIntroMotions(chr.MOTION_MODE_GENERAL, "d:/ymir work/pc2/assassin/intro/")
  268. ##############
  269. # SURA
  270. ##############
  271. chrmgr.CreateRace(RACE_SURA_M)
  272. chrmgr.SelectRace(RACE_SURA_M)
  273. chrmgr.LoadLocalRaceData("sura_m.msm")
  274. SetIntroMotions(chr.MOTION_MODE_GENERAL, "d:/ymir work/pc/sura/intro/")
  275. chrmgr.CreateRace(RACE_SURA_W)
  276. chrmgr.SelectRace(RACE_SURA_W)
  277. chrmgr.LoadLocalRaceData("sura_w.msm")
  278. SetIntroMotions(chr.MOTION_MODE_GENERAL, "d:/ymir work/pc2/sura/intro/")
  279. ##############
  280. # SHAMAN
  281. ##############
  282. chrmgr.CreateRace(RACE_SHAMAN_W)
  283. chrmgr.SelectRace(RACE_SHAMAN_W)
  284. chrmgr.LoadLocalRaceData("shaman_w.msm")
  285. SetIntroMotions(chr.MOTION_MODE_GENERAL, "d:/ymir work/pc/shaman/intro/")
  286. chrmgr.CreateRace(RACE_SHAMAN_M)
  287. chrmgr.SelectRace(RACE_SHAMAN_M)
  288. chrmgr.LoadLocalRaceData("shaman_m.msm")
  289. SetIntroMotions(chr.MOTION_MODE_GENERAL, "d:/ymir work/pc2/shaman/intro/")
  290. def __LoadGameSound():
  291. item.SetUseSoundFileName(item.USESOUND_DEFAULT, "sound/ui/drop.wav")
  292. item.SetUseSoundFileName(item.USESOUND_ACCESSORY, "sound/ui/equip_ring_amulet.wav")
  293. item.SetUseSoundFileName(item.USESOUND_ARMOR, "sound/ui/equip_metal_armor.wav")
  294. item.SetUseSoundFileName(item.USESOUND_BOW, "sound/ui/equip_bow.wav")
  295. item.SetUseSoundFileName(item.USESOUND_WEAPON, "sound/ui/equip_metal_weapon.wav")
  296. item.SetUseSoundFileName(item.USESOUND_POTION, "sound/ui/eat_potion.wav")
  297. item.SetUseSoundFileName(item.USESOUND_PORTAL, "sound/ui/potal_scroll.wav")
  298. item.SetDropSoundFileName(item.DROPSOUND_DEFAULT, "sound/ui/drop.wav")
  299. item.SetDropSoundFileName(item.DROPSOUND_ACCESSORY, "sound/ui/equip_ring_amulet.wav")
  300. item.SetDropSoundFileName(item.DROPSOUND_ARMOR, "sound/ui/equip_metal_armor.wav")
  301. item.SetDropSoundFileName(item.DROPSOUND_BOW, "sound/ui/equip_bow.wav")
  302. item.SetDropSoundFileName(item.DROPSOUND_WEAPON, "sound/ui/equip_metal_weapon.wav")
  303. def __LoadGameEffect():
  304. chrmgr.RegisterEffect(chrmgr.EFFECT_SPAWN_APPEAR, "Bip01", "d:/ymir work/effect/etc/appear_die/monster_appear.mse")
  305. chrmgr.RegisterEffect(chrmgr.EFFECT_SPAWN_DISAPPEAR, "Bip01", "d:/ymir work/effect/etc/appear_die/monster_die.mse")
  306. chrmgr.RegisterEffect(chrmgr.EFFECT_FLAME_ATTACK, "equip_right_hand", "d:/ymir work/effect/hit/blow_flame/flame_3_weapon.mse")
  307. chrmgr.RegisterEffect(chrmgr.EFFECT_FLAME_HIT, "", "d:/ymir work/effect/hit/blow_flame/flame_3_blow.mse")
  308. chrmgr.RegisterEffect(chrmgr.EFFECT_FLAME_ATTACH, "", "d:/ymir work/effect/hit/blow_flame/flame_3_body.mse")
  309. chrmgr.RegisterEffect(chrmgr.EFFECT_ELECTRIC_ATTACK, "equip_right", "d:/ymir work/effect/hit/blow_electric/light_1_weapon.mse")
  310. chrmgr.RegisterEffect(chrmgr.EFFECT_ELECTRIC_HIT, "", "d:/ymir work/effect/hit/blow_electric/light_1_blow.mse")
  311. chrmgr.RegisterEffect(chrmgr.EFFECT_ELECTRIC_ATTACH, "", "d:/ymir work/effect/hit/blow_electric/light_1_body.mse")
  312. chrmgr.RegisterEffect(chrmgr.EFFECT_LEVELUP, "", "d:/ymir work/effect/etc/levelup_1/level_up.mse")
  313. chrmgr.RegisterEffect(chrmgr.EFFECT_SKILLUP, "", "d:/ymir work/effect/etc/skillup/skillup_1.mse")
  314. chrmgr.RegisterEffect(chrmgr.EFFECT_EMPIRE+1, "Bip01", "d:/ymir work/effect/etc/empire/empire_A.mse")
  315. chrmgr.RegisterEffect(chrmgr.EFFECT_EMPIRE+2, "Bip01", "d:/ymir work/effect/etc/empire/empire_B.mse")
  316. chrmgr.RegisterEffect(chrmgr.EFFECT_EMPIRE+3, "Bip01", "d:/ymir work/effect/etc/empire/empire_C.mse")
  317. chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+1, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_sword_loop.mse")
  318. chrmgr.RegisterEffect(chrmgr.EFFECT_WEAPON+2, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_spear_loop.mse")
  319. # localeInfo
  320. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+0, "Bip01", localeInfo.FN_GM_MARK)
  321. # END_OF_localeInfo
  322. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+3, "Bip01", "d:/ymir work/effect/hit/blow_poison/poison_loop.mse") ## 중독
  323. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+4, "", "d:/ymir work/effect/affect/slow.mse")
  324. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+5, "Bip01 Head", "d:/ymir work/effect/etc/stun/stun_loop.mse")
  325. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+6, "", "d:/ymir work/effect/etc/ready/ready.mse")
  326. #chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+8, "", "d:/ymir work/guild/effect/10_construction.mse")
  327. #chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+9, "", "d:/ymir work/guild/effect/20_construction.mse")
  328. #chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+10, "", "d:/ymir work/guild/effect/20_upgrade.mse")
  329. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+16, "", "d:/ymir work/pc/warrior/effect/gyeokgongjang_loop.mse") ## 천근추 (밑에도 있따-_-)
  330. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+17, "", "d:/ymir work/pc/assassin/effect/gyeonggong_loop.mse") ## 자객 - 경공
  331. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+19, "Bip01 R Finger2", "d:/ymir work/pc/sura/effect/gwigeom_loop.mse")
  332. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+20, "", "d:/ymir work/pc/sura/effect/fear_loop.mse") ## 수라 - 공포
  333. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+21, "", "d:/ymir work/pc/sura/effect/jumagap_loop.mse") ## 수라 - 주마갑
  334. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+22, "", "d:/ymir work/pc/shaman/effect/3hosin_loop.mse") ## 무당 - 호신
  335. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+23, "", "d:/ymir work/pc/shaman/effect/boho_loop.mse") ## 무당 - 보호
  336. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+24, "", "d:/ymir work/pc/shaman/effect/10kwaesok_loop.mse") ## 무당 - 쾌속
  337. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+25, "", "d:/ymir work/pc/sura/effect/heuksin_loop.mse")
  338. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+26, "", "d:/ymir work/pc/sura/effect/muyeong_loop.mse")
  339. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+28, "Bip01", "d:/ymir work/effect/hit/blow_flame/flame_loop.mse")
  340. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+29, "Bip01 R Hand", "d:/ymir work/pc/shaman/effect/6gicheon_hand.mse")
  341. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+30, "Bip01 L Hand", "d:/ymir work/pc/shaman/effect/jeungryeok_hand.mse")
  342. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+32, "Bip01 Head", "d:/ymir work/pc/sura/effect/pabeop_loop.mse")
  343. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+33, "", "d:/ymir work/pc/warrior/effect/gyeokgongjang_loop.mse") ## 천근추 (Fallen)
  344. ## 34 Polymoph
  345. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+35, "", "d:/ymir work/effect/etc/guild_war_flag/flag_red.mse")
  346. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+36, "", "d:/ymir work/effect/etc/guild_war_flag/flag_blue.mse")
  347. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+37, "", "d:/ymir work/effect/etc/guild_war_flag/flag_yellow.mse")
  348. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+42, "", "d:/ymir work/my_work/effect/resistbuff.mse")
  349. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+43, "Bip01 R Hand", "d:/ymir work/my_work/effect/criticalbuff.mse")
  350. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+44, "", "d:/ymir work/my_work/effect/reflectbuff.mse")
  351. if app.ENABLE_MELEY_LAIR_DUNGEON:
  352. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT + chr.AFFECT_STATUE1, "", "d:/ymir work/effect/monster2/redd_moojuk.mse")
  353. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT + chr.AFFECT_STATUE2, "", "d:/ymir work/effect/monster2/redd_moojuk.mse")
  354. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT + chr.AFFECT_STATUE3, "", "d:/ymir work/effect/monster2/redd_moojuk_blue.mse")
  355. chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT + chr.AFFECT_STATUE4, "", "d:/ymir work/effect/monster2/redd_moojuk_green.mse")
  356. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+1, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_7.mse")
  357. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+2, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_8.mse")
  358. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+3, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_9.mse")
  359. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+4, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/sword_7_b.mse")
  360. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+5, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/sword_8_b.mse")
  361. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+6, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/sword_9_b.mse")
  362. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+7, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_7_f.mse")
  363. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+8, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_8_f.mse")
  364. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+9, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_9_f.mse")
  365. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+10, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_7_s.mse")
  366. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+11, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_8_s.mse")
  367. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+12, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_9_s.mse")
  368. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+13, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/sword_7_s.mse")
  369. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+14, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/sword_8_s.mse")
  370. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+15, "PART_WEAPON_LEFT", "D:/ymir work/pc/common/effect/sword/sword_9_s.mse")
  371. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+16, "Bip01", "D:/ymir work/pc/common/effect/armor/armor_7.mse")
  372. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+17, "Bip01", "D:/ymir work/pc/common/effect/armor/armor_8.mse")
  373. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+18, "Bip01", "D:/ymir work/pc/common/effect/armor/armor_9.mse")
  374. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+19, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-4-2-1.mse")
  375. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+20, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-4-2-2.mse")
  376. if app.ENABLE_SASH_SYSTEM:
  377. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED + 21, "Bip01", "d:/ymir work/pc/common/effect/armor/acc_01.mse")
  378. if app.VERSION_162_ENABLED:
  379. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+22, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-5-1.mse")
  380. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+33, "Bip01", "D:/ymir work/pc/common/effect/armor/fum_alb.mse")
  381. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+38, "Bip01", "D:/ymir work/pc/common/effect/armor/fum_rosu.mse")
  382. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+41, "Bip01", "D:/ymir work/pc/common/effect/armor/fum_blue.mse")
  383. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+42, "Bip01", "D:/ymir work/pc/common/effect/armor/fum_galben.mse")
  384. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+43, "Bip01", "D:/ymir work/pc/common/effect/armor/fum_roz.mse")
  385. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+44, "Bip01", "D:/ymir work/pc/common/effect/armor/fum_portocaliu.mse")
  386. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+45, "Bip01", "D:/ymir work/pc/common/effect/armor/fum_verde.mse")
  387. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+46, "Bip01", "D:/ymir work/pc/common/effect/armor/fum_blue_inchis.mse")
  388. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+50, "Bip01", "D:/ymir work/pc/common/effect/armor/fum_maro.mse")
  389. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+51, "Bip01", "D:/ymir work/pc/common/effect/armor/fum_mov.mse")
  390. chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+52, "Bip01", "D:/ymir work/pc/common/effect/armor/fum_turcuaz.mse")
  391. ## FlyData
  392. effect.RegisterIndexedFlyData(effect.FLY_EXP, effect.INDEX_FLY_TYPE_NORMAL, "d:/ymir work/effect/etc/gathering/ga_piece_yellow_small2.msf") ## 노란색 (EXP)
  393. effect.RegisterIndexedFlyData(effect.FLY_HP_MEDIUM, effect.INDEX_FLY_TYPE_NORMAL, "d:/ymir work/effect/etc/gathering/ga_piece_red_small.msf") ## 빨간색 (HP) 작은거
  394. effect.RegisterIndexedFlyData(effect.FLY_HP_BIG, effect.INDEX_FLY_TYPE_NORMAL, "d:/ymir work/effect/etc/gathering/ga_piece_red_big.msf") ## 빨간색 (HP) 큰거
  395. effect.RegisterIndexedFlyData(effect.FLY_SP_SMALL, effect.INDEX_FLY_TYPE_NORMAL, "d:/ymir work/effect/etc/gathering/ga_piece_blue_warrior_small.msf") ## 파란색 꼬리만 있는거
  396. effect.RegisterIndexedFlyData(effect.FLY_SP_MEDIUM, effect.INDEX_FLY_TYPE_NORMAL, "d:/ymir work/effect/etc/gathering/ga_piece_blue_small.msf") ## 파란색 작은거
  397. effect.RegisterIndexedFlyData(effect.FLY_SP_BIG, effect.INDEX_FLY_TYPE_NORMAL, "d:/ymir work/effect/etc/gathering/ga_piece_blue_big.msf") ## 파란색 큰거
  398. effect.RegisterIndexedFlyData(effect.FLY_FIREWORK1, effect.INDEX_FLY_TYPE_FIRE_CRACKER, "d:/ymir work/effect/etc/firecracker/firecracker_1.msf") ## 폭죽 1
  399. effect.RegisterIndexedFlyData(effect.FLY_FIREWORK2, effect.INDEX_FLY_TYPE_FIRE_CRACKER, "d:/ymir work/effect/etc/firecracker/firecracker_2.msf") ## 폭죽 2
  400. effect.RegisterIndexedFlyData(effect.FLY_FIREWORK3, effect.INDEX_FLY_TYPE_FIRE_CRACKER, "d:/ymir work/effect/etc/firecracker/firecracker_3.msf") ## 폭죽 3
  401. effect.RegisterIndexedFlyData(effect.FLY_FIREWORK4, effect.INDEX_FLY_TYPE_FIRE_CRACKER, "d:/ymir work/effect/etc/firecracker/firecracker_4.msf") ## 폭죽 4
  402. effect.RegisterIndexedFlyData(effect.FLY_FIREWORK5, effect.INDEX_FLY_TYPE_FIRE_CRACKER, "d:/ymir work/effect/etc/firecracker/firecracker_5.msf") ## 폭죽 5
  403. effect.RegisterIndexedFlyData(effect.FLY_FIREWORK6, effect.INDEX_FLY_TYPE_FIRE_CRACKER, "d:/ymir work/effect/etc/firecracker/firecracker_6.msf") ## 폭죽 6
  404. effect.RegisterIndexedFlyData(effect.FLY_FIREWORK_XMAS, effect.INDEX_FLY_TYPE_FIRE_CRACKER, "d:/ymir work/effect/etc/firecracker/firecracker_xmas.msf") ## 폭죽 X-Mas
  405. effect.RegisterIndexedFlyData(effect.FLY_CHAIN_LIGHTNING, effect.INDEX_FLY_TYPE_NORMAL, "d:/ymir work/pc/shaman/effect/pokroe.msf") ## 폭뢰격
  406. effect.RegisterIndexedFlyData(effect.FLY_HP_SMALL, effect.INDEX_FLY_TYPE_NORMAL, "d:/ymir work/effect/etc/gathering/ga_piece_red_smallest.msf") ## 빨간색 매우 작은거
  407. effect.RegisterIndexedFlyData(effect.FLY_SKILL_MUYEONG, effect.INDEX_FLY_TYPE_AUTO_FIRE, "d:/ymir work/pc/sura/effect/muyeong_fly.msf") ## 무영진
  408. #########################################################################################
  409. ## Emoticon
  410. EmoticonStr = "d:/ymir work/effect/etc/emoticon/"
  411. chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+0, "", EmoticonStr+"sweat.mse")
  412. net.RegisterEmoticonString("(황당)")
  413. chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+1, "", EmoticonStr+"money.mse")
  414. net.RegisterEmoticonString("(돈)")
  415. chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+2, "", EmoticonStr+"happy.mse")
  416. net.RegisterEmoticonString("(기쁨)")
  417. chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+3, "", EmoticonStr+"love_s.mse")
  418. net.RegisterEmoticonString("(좋아)")
  419. chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+4, "", EmoticonStr+"love_l.mse")
  420. net.RegisterEmoticonString("(사랑)")
  421. chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+5, "", EmoticonStr+"angry.mse")
  422. net.RegisterEmoticonString("(분노)")
  423. chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+6, "", EmoticonStr+"aha.mse")
  424. net.RegisterEmoticonString("(아하)")
  425. chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+7, "", EmoticonStr+"gloom.mse")
  426. net.RegisterEmoticonString("(우울)")
  427. chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+8, "", EmoticonStr+"sorry.mse")
  428. net.RegisterEmoticonString("(죄송)")
  429. chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+9, "", EmoticonStr+"!_mix_back.mse")
  430. net.RegisterEmoticonString("(!)")
  431. chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+10, "", EmoticonStr+"question.mse")
  432. net.RegisterEmoticonString("(?)")
  433. chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+11, "", EmoticonStr+"fish.mse")
  434. net.RegisterEmoticonString("(fish)")
  435. ## Emoticon
  436. #########################################################################################
  437. def __LoadGameWarrior():
  438. __LoadGameWarriorEx(RACE_WARRIOR_M, "d:/ymir work/pc/warrior/")
  439. __LoadGameWarriorEx(RACE_WARRIOR_W, "d:/ymir work/pc2/warrior/")
  440. def __LoadGameAssassin():
  441. __LoadGameAssassinEx(RACE_ASSASSIN_W, "d:/ymir work/pc/assassin/")
  442. __LoadGameAssassinEx(RACE_ASSASSIN_M, "d:/ymir work/pc2/assassin/")
  443. def __LoadGameSura():
  444. __LoadGameSuraEx(RACE_SURA_M, "d:/ymir work/pc/sura/")
  445. __LoadGameSuraEx(RACE_SURA_W, "d:/ymir work/pc2/sura/")
  446. def __LoadGameShaman():
  447. __LoadGameShamanEx(RACE_SHAMAN_W, "d:/ymir work/pc/shaman/")
  448. __LoadGameShamanEx(RACE_SHAMAN_M, "d:/ymir work/pc2/shaman/")
  449. def __LoadGameWarriorEx(race, path):
  450. ## Warrior
  451. #########################################################################################
  452. chrmgr.SelectRace(race)
  453. ## GENERAL MODE
  454. SetGeneralMotions(chr.MOTION_MODE_GENERAL, path + "general/")
  455. chrmgr.SetMotionRandomWeight(chr.MOTION_MODE_GENERAL, chr.MOTION_WAIT, 0, 70)
  456. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_WAIT, "wait_1.msa", 30)
  457. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_COMBO_ATTACK_1, "attack.msa", 50)
  458. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_COMBO_ATTACK_1, "attack_1.msa", 50)
  459. ## SKILL
  460. chrmgr.SetPathName(path + "skill/")
  461. for i in xrange(skill.SKILL_EFFECT_COUNT):
  462. END_STRING = ""
  463. if i != 0: END_STRING = "_%d" % (i+1)
  464. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+1, "samyeon" + END_STRING + ".msa")
  465. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+2, "palbang" + END_STRING + ".msa")
  466. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+3, "jeongwi" + END_STRING + ".msa")
  467. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+4, "geomgyeong" + END_STRING + ".msa")
  468. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+5, "tanhwan" + END_STRING + ".msa")
  469. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+6, "gihyeol" + END_STRING + ".msa")
  470. if NEW_678TH_SKILL_ENABLE:
  471. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+6, "gihyeol" + END_STRING + ".msa")
  472. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+16, "gigongcham" + END_STRING + ".msa")
  473. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+17, "gyeoksan" + END_STRING + ".msa")
  474. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+18, "daejin" + END_STRING + ".msa")
  475. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+19, "cheongeun" + END_STRING + ".msa")
  476. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+20, "geompung" + END_STRING + ".msa")
  477. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+21, "noegeom" + END_STRING + ".msa")
  478. if NEW_678TH_SKILL_ENABLE:
  479. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+21, "noegeom" + END_STRING + ".msa")
  480. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_DRAGONBLOOD, "guild_yongsinuipi.msa")
  481. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_DRAGONBLESS, "guild_yongsinuichukbok.msa")
  482. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_BLESSARMOR, "guild_seonghwigap.msa")
  483. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_SPPEDUP, "guild_gasokhwa.msa")
  484. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_DRAGONWRATH, "guild_yongsinuibunno.msa")
  485. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_MAGICUP, "guild_jumunsul.msa")
  486. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, 1)
  487. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  488. ## EMOTION
  489. emotion.RegisterEmotionAnis(path)
  490. ## ONEHAND_SWORD BATTLE
  491. chrmgr.SetPathName(path + "onehand_sword/")
  492. chrmgr.RegisterMotionMode(chr.MOTION_MODE_ONEHAND_SWORD)
  493. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_WAIT, "wait.msa", 50)
  494. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_WAIT, "wait_1.msa", 50)
  495. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_WALK, "walk.msa")
  496. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_RUN, "run.msa")
  497. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_DAMAGE, "damage.msa", 50)
  498. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_DAMAGE, "damage_1.msa", 50)
  499. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_DAMAGE_BACK, "damage_2.msa", 50)
  500. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_DAMAGE_BACK, "damage_3.msa", 50)
  501. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_1, "combo_01.msa")
  502. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_2, "combo_02.msa")
  503. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_3, "combo_03.msa")
  504. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_4, "combo_04.msa")
  505. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_5, "combo_05.msa")
  506. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_6, "combo_06.msa")
  507. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_7, "combo_07.msa")
  508. ## Combo Type 1
  509. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_1, 4)
  510. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  511. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  512. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  513. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_4)
  514. ## Combo Type 2
  515. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, 5)
  516. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  517. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  518. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  519. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
  520. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_7)
  521. ## Combo Type 3
  522. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, 6)
  523. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  524. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  525. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  526. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
  527. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_6)
  528. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_6, chr.MOTION_COMBO_ATTACK_4)
  529. ## TWOHAND_SWORD BATTLE
  530. chrmgr.SetPathName(path + "twohand_sword/")
  531. chrmgr.RegisterMotionMode(chr.MOTION_MODE_TWOHAND_SWORD)
  532. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_TWOHAND_SWORD, chr.MOTION_WAIT, "wait.msa", 70)
  533. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_TWOHAND_SWORD, chr.MOTION_WAIT, "wait_1.msa", 30)
  534. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_TWOHAND_SWORD, chr.MOTION_WALK, "walk.msa")
  535. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_TWOHAND_SWORD, chr.MOTION_RUN, "run.msa")
  536. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_TWOHAND_SWORD, chr.MOTION_DAMAGE, "damage.msa", 50)
  537. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_TWOHAND_SWORD, chr.MOTION_DAMAGE, "damage_1.msa", 50)
  538. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_TWOHAND_SWORD, chr.MOTION_DAMAGE_BACK, "damage_2.msa", 50)
  539. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_TWOHAND_SWORD, chr.MOTION_DAMAGE_BACK, "damage_3.msa", 50)
  540. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_TWOHAND_SWORD, chr.MOTION_COMBO_ATTACK_1, "combo_01.msa")
  541. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_TWOHAND_SWORD, chr.MOTION_COMBO_ATTACK_2, "combo_02.msa")
  542. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_TWOHAND_SWORD, chr.MOTION_COMBO_ATTACK_3, "combo_03.msa")
  543. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_TWOHAND_SWORD, chr.MOTION_COMBO_ATTACK_4, "combo_04.msa")
  544. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_TWOHAND_SWORD, chr.MOTION_COMBO_ATTACK_5, "combo_05.msa")
  545. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_TWOHAND_SWORD, chr.MOTION_COMBO_ATTACK_6, "combo_06.msa")
  546. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_TWOHAND_SWORD, chr.MOTION_COMBO_ATTACK_7, "combo_07.msa")
  547. ## Combo Type 1
  548. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_1, 4)
  549. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  550. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  551. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  552. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_4)
  553. ## Combo Type 2
  554. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_2, 5)
  555. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  556. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  557. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  558. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
  559. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_7)
  560. ## Combo Type 3
  561. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_3, 6)
  562. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  563. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  564. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  565. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
  566. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_6)
  567. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_TWOHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_6, chr.MOTION_COMBO_ATTACK_4)
  568. ## FISHING
  569. chrmgr.SetPathName(path + "fishing/")
  570. chrmgr.RegisterMotionMode(chr.MOTION_MODE_FISHING)
  571. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_WAIT, "wait.msa")
  572. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_WALK, "walk.msa")
  573. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_RUN, "run.msa")
  574. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_THROW, "throw.msa")
  575. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_WAIT, "fishing_wait.msa")
  576. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_STOP, "fishing_cancel.msa")
  577. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_REACT, "fishing_react.msa")
  578. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_CATCH, "fishing_catch.msa")
  579. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_FAIL, "fishing_fail.msa")
  580. ## HORSE
  581. chrmgr.SetPathName(path + "horse/")
  582. chrmgr.RegisterMotionMode(chr.MOTION_MODE_HORSE)
  583. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WAIT, "wait.msa", 90)
  584. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WAIT, "wait_1.msa", 9)
  585. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WAIT, "wait_2.msa", 1)
  586. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WALK, "walk.msa")
  587. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_RUN, "run.msa")
  588. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_DAMAGE, "damage.msa")
  589. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_DAMAGE_BACK, "damage.msa")
  590. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_DEAD, "dead.msa")
  591. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, HORSE_SKILL_CHARGE, "skill_charge.msa")
  592. ## HORSE_ONEHAND_SWORD
  593. chrmgr.SetPathName(path + "horse_onehand_sword/")
  594. chrmgr.RegisterMotionMode(chr.MOTION_MODE_HORSE_ONEHAND_SWORD)
  595. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_1, "combo_01.msa")
  596. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_2, "combo_02.msa")
  597. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_3, "combo_03.msa")
  598. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, COMBO_TYPE_1, 3)
  599. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  600. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  601. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  602. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, HORSE_SKILL_WILDATTACK, "skill_wildattack.msa")
  603. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, HORSE_SKILL_SPLASH, "skill_splash.msa")
  604. ## HORSE_TWOHAND_SWORD
  605. chrmgr.SetPathName(path + "horse_twohand_sword/")
  606. chrmgr.RegisterMotionMode(chr.MOTION_MODE_HORSE_TWOHAND_SWORD)
  607. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_TWOHAND_SWORD, chr.MOTION_COMBO_ATTACK_1, "combo_01.msa")
  608. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_TWOHAND_SWORD, chr.MOTION_COMBO_ATTACK_2, "combo_02.msa")
  609. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_TWOHAND_SWORD, chr.MOTION_COMBO_ATTACK_3, "combo_03.msa")
  610. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_HORSE_TWOHAND_SWORD, COMBO_TYPE_1, 3)
  611. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_TWOHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  612. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_TWOHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  613. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_TWOHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  614. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_TWOHAND_SWORD, HORSE_SKILL_WILDATTACK, "skill_wildattack.msa")
  615. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_TWOHAND_SWORD, HORSE_SKILL_SPLASH, "skill_splash.msa")
  616. ## Bone
  617. chrmgr.RegisterAttachingBoneName(chr.PART_WEAPON, "equip_right_hand")
  618. if app.ENABLE_SASH_SYSTEM:
  619. chrmgr.RegisterAttachingBoneName(chr.PART_SASH, "Bip01 Spine2")
  620. def __LoadGameAssassinEx(race, path):
  621. ## Assassin
  622. #########################################################################################
  623. chrmgr.SelectRace(race)
  624. ## GENERAL MOTION MODE
  625. SetGeneralMotions(chr.MOTION_MODE_GENERAL, path + "general/")
  626. chrmgr.SetMotionRandomWeight(chr.MOTION_MODE_GENERAL, chr.MOTION_WAIT, 0, 70)
  627. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_WAIT, "wait_1.msa", 30)
  628. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_COMBO_ATTACK_1, "attack.msa", 50)
  629. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_COMBO_ATTACK_1, "attack_1.msa", 50)
  630. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, 1)
  631. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  632. ## SKILL
  633. chrmgr.SetPathName(path + "skill/")
  634. for i in xrange(skill.SKILL_EFFECT_COUNT):
  635. END_STRING = ""
  636. if i != 0: END_STRING = "_%d" % (i+1)
  637. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+1, "amseup" + END_STRING + ".msa")
  638. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+2, "gungsin" + END_STRING + ".msa")
  639. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+3, "charyun" + END_STRING + ".msa")
  640. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+4, "eunhyeong" + END_STRING + ".msa")
  641. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+5, "sangong" + END_STRING + ".msa")
  642. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+6, "seomjeon" + END_STRING + ".msa")
  643. if NEW_678TH_SKILL_ENABLE:
  644. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+6, "seomjeon" + END_STRING + ".msa")
  645. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+16, "yeonsa" + END_STRING + ".msa")
  646. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+17, "gwangyeok" + END_STRING + ".msa")
  647. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+18, "hwajo" + END_STRING + ".msa")
  648. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+19, "gyeonggong" + END_STRING + ".msa")
  649. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+20, "dokgigung" + END_STRING + ".msa")
  650. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+21, "seomgwang" + END_STRING + ".msa")
  651. if NEW_678TH_SKILL_ENABLE:
  652. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+21, "seomgwang" + END_STRING + ".msa")
  653. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_DRAGONBLOOD, "guild_yongsinuipi.msa")
  654. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_DRAGONBLESS, "guild_yongsinuichukbok.msa")
  655. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_BLESSARMOR, "guild_seonghwigap.msa")
  656. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_SPPEDUP, "guild_gasokhwa.msa")
  657. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_DRAGONWRATH, "guild_yongsinuibunno.msa")
  658. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_MAGICUP, "guild_jumunsul.msa")
  659. ## EMOTION
  660. emotion.RegisterEmotionAnis(path)
  661. ## ONEHAND_SWORD BATTLE
  662. chrmgr.SetPathName(path + "onehand_sword/")
  663. chrmgr.RegisterMotionMode(chr.MOTION_MODE_ONEHAND_SWORD)
  664. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_WAIT, "wait.msa", 70)
  665. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_WAIT, "wait_1.msa", 30)
  666. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_WALK, "walk.msa")
  667. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_RUN, "run.msa")
  668. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_DAMAGE, "damage.msa", 50)
  669. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_DAMAGE, "damage_1.msa", 50)
  670. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_DAMAGE_BACK, "damage_2.msa", 50)
  671. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_DAMAGE_BACK, "damage_3.msa", 50)
  672. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_1, "combo_01.msa")
  673. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_2, "combo_02.msa")
  674. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_3, "combo_03.msa")
  675. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_4, "combo_04.msa")
  676. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_5, "combo_05.msa")
  677. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_6, "combo_06.msa")
  678. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_7, "combo_07.msa")
  679. ## Combo Type 1
  680. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_1, 4)
  681. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  682. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  683. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  684. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_4)
  685. ## Combo Type 2
  686. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, 5)
  687. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  688. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  689. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  690. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
  691. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_7)
  692. ## Combo Type 3
  693. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, 6)
  694. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  695. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  696. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  697. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
  698. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_6)
  699. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_6, chr.MOTION_COMBO_ATTACK_4)
  700. ## DUALHAND_SWORD BATTLE
  701. chrmgr.SetPathName(path + "dualhand_sword/")
  702. chrmgr.RegisterMotionMode(chr.MOTION_MODE_DUALHAND_SWORD)
  703. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_WAIT, "wait.msa", 70)
  704. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_WAIT, "wait_1.msa", 30)
  705. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_WALK, "walk.msa")
  706. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_RUN, "run.msa")
  707. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_DAMAGE, "damage.msa", 50)
  708. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_DAMAGE, "damage_1.msa", 50)
  709. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_DAMAGE_BACK, "damage_2.msa", 50)
  710. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_DAMAGE_BACK, "damage_3.msa", 50)
  711. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_COMBO_ATTACK_1, "combo_01.msa")
  712. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_COMBO_ATTACK_2, "combo_02.msa")
  713. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_COMBO_ATTACK_3, "combo_03.msa")
  714. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_COMBO_ATTACK_4, "combo_04.msa")
  715. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_COMBO_ATTACK_5, "combo_05.msa")
  716. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_COMBO_ATTACK_6, "combo_06.msa")
  717. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_COMBO_ATTACK_7, "combo_07.msa")
  718. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_DUALHAND_SWORD, chr.MOTION_COMBO_ATTACK_8, "combo_08.msa")
  719. ## Combo Type 1
  720. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_1, 4)
  721. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  722. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  723. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  724. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_4)
  725. ## Combo Type 2
  726. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_2, 5)
  727. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  728. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  729. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  730. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
  731. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_7)
  732. ## Combo Type 3
  733. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_3, 6)
  734. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  735. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  736. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  737. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
  738. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_6)
  739. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_DUALHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_6, chr.MOTION_COMBO_ATTACK_8)
  740. ## BOW BATTLE
  741. chrmgr.SetPathName(path + "bow/")
  742. chrmgr.RegisterMotionMode(chr.MOTION_MODE_BOW)
  743. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW, chr.MOTION_WAIT, "wait.msa", 70)
  744. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW, chr.MOTION_WAIT, "wait_1.msa", 30)
  745. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW, chr.MOTION_WALK, "walk.msa")
  746. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW, chr.MOTION_RUN, "run.msa")
  747. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW, chr.MOTION_DAMAGE, "damage.msa", 50)
  748. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW, chr.MOTION_DAMAGE, "damage_1.msa", 50)
  749. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW, chr.MOTION_DAMAGE_BACK, "damage_2.msa", 50)
  750. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW, chr.MOTION_DAMAGE_BACK, "damage_3.msa", 50)
  751. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW, chr.MOTION_COMBO_ATTACK_1, "attack.msa")
  752. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_BOW, COMBO_TYPE_1, 1)
  753. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BOW, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  754. if app.ENABLE_NEW_ARROW_SYSTEM:
  755. chrmgr.SetPathName(path + "bow/")
  756. chrmgr.RegisterMotionMode(chr.MOTION_MODE_BOW_SPECIAL)
  757. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW_SPECIAL, chr.MOTION_WAIT, "wait.msa", 70)
  758. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW_SPECIAL, chr.MOTION_WAIT, "wait_1.msa", 30)
  759. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW_SPECIAL, chr.MOTION_WALK, "walk.msa")
  760. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW_SPECIAL, chr.MOTION_RUN, "run.msa")
  761. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW_SPECIAL, chr.MOTION_DAMAGE, "damage.msa", 50)
  762. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW_SPECIAL, chr.MOTION_DAMAGE, "damage_1.msa", 50)
  763. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW_SPECIAL, chr.MOTION_DAMAGE_BACK, "damage_2.msa", 50)
  764. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW_SPECIAL, chr.MOTION_DAMAGE_BACK, "damage_3.msa", 50)
  765. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BOW_SPECIAL, chr.MOTION_COMBO_ATTACK_1, "attack_special.msa")
  766. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_BOW_SPECIAL, COMBO_TYPE_1, 1)
  767. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BOW_SPECIAL, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  768. ## FISHING
  769. chrmgr.SetPathName(path + "fishing/")
  770. chrmgr.RegisterMotionMode(chr.MOTION_MODE_FISHING)
  771. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_WAIT, "wait.msa")
  772. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_WALK, "walk.msa")
  773. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_RUN, "run.msa")
  774. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_THROW, "throw.msa")
  775. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_WAIT, "fishing_wait.msa")
  776. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_STOP, "fishing_cancel.msa")
  777. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_REACT, "fishing_react.msa")
  778. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_CATCH, "fishing_catch.msa")
  779. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_FAIL, "fishing_fail.msa")
  780. ## HORSE
  781. chrmgr.SetPathName(path + "horse/")
  782. chrmgr.RegisterMotionMode(chr.MOTION_MODE_HORSE)
  783. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WAIT, "wait.msa", 90)
  784. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WAIT, "wait_1.msa", 9)
  785. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WAIT, "wait_2.msa", 1)
  786. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WALK, "walk.msa")
  787. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_RUN, "run.msa")
  788. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_DAMAGE, "damage.msa")
  789. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_DAMAGE_BACK, "damage.msa")
  790. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_DEAD, "dead.msa")
  791. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, HORSE_SKILL_CHARGE, "skill_charge.msa")
  792. ## HORSE_ONEHAND_SWORD
  793. chrmgr.SetPathName(path + "horse_onehand_sword/")
  794. chrmgr.RegisterMotionMode(chr.MOTION_MODE_HORSE_ONEHAND_SWORD)
  795. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_1, "combo_01.msa")
  796. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_2, "combo_02.msa")
  797. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_3, "combo_03.msa")
  798. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, HORSE_SKILL_WILDATTACK, "skill_wildattack.msa")
  799. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, HORSE_SKILL_SPLASH, "skill_splash.msa")
  800. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, COMBO_TYPE_1, 3)
  801. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  802. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  803. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  804. ## HORSE_DUALHAND_SWORD
  805. chrmgr.SetPathName(path + "horse_dualhand_sword/")
  806. chrmgr.RegisterMotionMode(chr.MOTION_MODE_HORSE_DUALHAND_SWORD)
  807. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_DUALHAND_SWORD, chr.MOTION_COMBO_ATTACK_1, "combo_01.msa")
  808. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_DUALHAND_SWORD, chr.MOTION_COMBO_ATTACK_2, "combo_02.msa")
  809. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_DUALHAND_SWORD, chr.MOTION_COMBO_ATTACK_3, "combo_03.msa")
  810. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_DUALHAND_SWORD, HORSE_SKILL_WILDATTACK, "skill_wildattack.msa")
  811. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_DUALHAND_SWORD, HORSE_SKILL_SPLASH, "skill_splash.msa")
  812. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_HORSE_DUALHAND_SWORD, COMBO_TYPE_1, 3)
  813. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_DUALHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  814. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_DUALHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  815. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_DUALHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  816. ## HORSE_BOW
  817. chrmgr.SetPathName(path + "horse_bow/")
  818. chrmgr.RegisterMotionMode(chr.MOTION_MODE_HORSE_BOW)
  819. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_BOW, chr.MOTION_WAIT, "wait.msa", 90)
  820. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_BOW, chr.MOTION_WAIT, "wait_1.msa", 9)
  821. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_BOW, chr.MOTION_WAIT, "wait_2.msa", 1)
  822. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_BOW, chr.MOTION_RUN, "run.msa")
  823. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_BOW, chr.MOTION_DAMAGE, "damage.msa")
  824. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_BOW, chr.MOTION_DEAD, "dead.msa")
  825. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_BOW, chr.MOTION_COMBO_ATTACK_1, "attack.msa")
  826. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_BOW, HORSE_SKILL_WILDATTACK, "skill_wildattack.msa")
  827. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_BOW, HORSE_SKILL_SPLASH, "skill_splash.msa")
  828. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_HORSE_BOW, COMBO_TYPE_1, 1)
  829. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_BOW, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  830. chrmgr.RegisterAttachingBoneName(chr.PART_WEAPON, "equip_right")
  831. chrmgr.RegisterAttachingBoneName(chr.PART_WEAPON_LEFT, "equip_left")
  832. if app.ENABLE_SASH_SYSTEM:
  833. chrmgr.RegisterAttachingBoneName(chr.PART_SASH, "Bip01 Spine2")
  834. def __LoadGameSuraEx(race, path):
  835. ## Sura
  836. #########################################################################################
  837. chrmgr.SelectRace(race)
  838. ## GENERAL MOTION MODE
  839. SetGeneralMotions(chr.MOTION_MODE_GENERAL, path + "general/")
  840. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_COMBO_ATTACK_1, "attack.msa", 50)
  841. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_COMBO_ATTACK_1, "attack_1.msa", 50)
  842. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, 1)
  843. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  844. ## SKILL
  845. chrmgr.SetPathName(path + "skill/")
  846. # chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+4, "geongon.msa")
  847. for i in xrange(skill.SKILL_EFFECT_COUNT):
  848. END_STRING = ""
  849. if i != 0: END_STRING = "_%d" % (i+1)
  850. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+1, "swaeryeong" + END_STRING + ".msa")
  851. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+2, "yonggwon" + END_STRING + ".msa")
  852. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+3, "gwigeom" + END_STRING + ".msa")
  853. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+4, "gongpo" + END_STRING + ".msa")
  854. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+5, "jumagap" + END_STRING + ".msa")
  855. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+6, "pabeop" + END_STRING + ".msa")
  856. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+16, "maryeong" + END_STRING + ".msa")
  857. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+17, "hwayeom" + END_STRING + ".msa")
  858. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+18, "muyeong" + END_STRING + ".msa")
  859. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+19, "heuksin" + END_STRING + ".msa")
  860. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+20, "tusok" + END_STRING + ".msa")
  861. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+21, "mahwan" + END_STRING + ".msa")
  862. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_DRAGONBLOOD, "guild_yongsinuipi.msa")
  863. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_DRAGONBLESS, "guild_yongsinuichukbok.msa")
  864. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_BLESSARMOR, "guild_seonghwigap.msa")
  865. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_SPPEDUP, "guild_gasokhwa.msa")
  866. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_DRAGONWRATH, "guild_yongsinuibunno.msa")
  867. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_MAGICUP, "guild_jumunsul.msa")
  868. ## EMOTION
  869. emotion.RegisterEmotionAnis(path)
  870. ## ONEHAND_SWORD BATTLE
  871. chrmgr.SetPathName(path + "onehand_sword/")
  872. chrmgr.RegisterMotionMode(chr.MOTION_MODE_ONEHAND_SWORD)
  873. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_WAIT, "wait.msa")
  874. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_WALK, "walk.msa")
  875. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_RUN, "run.msa")
  876. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_DAMAGE, "damage.msa")
  877. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_DAMAGE, "damage.msa", 50)
  878. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_DAMAGE, "damage_1.msa", 50)
  879. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_DAMAGE_BACK, "damage_2.msa", 50)
  880. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_DAMAGE_BACK, "damage_3.msa", 50)
  881. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_1, "combo_01.msa")
  882. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_2, "combo_02.msa")
  883. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_3, "combo_03.msa")
  884. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_4, "combo_04.msa")
  885. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_5, "combo_05.msa")
  886. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_6, "combo_06.msa")
  887. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_7, "combo_07.msa")
  888. ## Combo Type 1
  889. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_1, 4)
  890. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  891. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  892. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  893. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_4)
  894. ## Combo Type 2
  895. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, 5)
  896. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  897. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  898. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  899. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
  900. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_2, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_7)
  901. ## Combo Type 3
  902. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, 6)
  903. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  904. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  905. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  906. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
  907. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_6)
  908. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_ONEHAND_SWORD, COMBO_TYPE_3, COMBO_INDEX_6, chr.MOTION_COMBO_ATTACK_4)
  909. ## FISHING
  910. chrmgr.SetPathName(path + "fishing/")
  911. chrmgr.RegisterMotionMode(chr.MOTION_MODE_FISHING)
  912. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_WAIT, "wait.msa")
  913. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_WALK, "walk.msa")
  914. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_RUN, "run.msa")
  915. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_THROW, "throw.msa")
  916. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_WAIT, "fishing_wait.msa")
  917. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_STOP, "fishing_cancel.msa")
  918. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_REACT, "fishing_react.msa")
  919. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_CATCH, "fishing_catch.msa")
  920. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_FAIL, "fishing_fail.msa")
  921. ## HORSE
  922. chrmgr.SetPathName(path + "horse/")
  923. chrmgr.RegisterMotionMode(chr.MOTION_MODE_HORSE)
  924. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WAIT, "wait.msa", 90)
  925. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WAIT, "wait_1.msa", 9)
  926. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WAIT, "wait_2.msa", 1)
  927. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WALK, "walk.msa")
  928. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_RUN, "run.msa")
  929. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_DAMAGE, "damage.msa")
  930. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_DAMAGE_BACK, "damage.msa")
  931. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_DEAD, "dead.msa")
  932. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, HORSE_SKILL_CHARGE, "skill_charge.msa")
  933. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, HORSE_SKILL_SPLASH, "skill_splash.msa")
  934. ## HORSE_ONEHAND_SWORD
  935. chrmgr.SetPathName(path + "horse_onehand_sword/")
  936. chrmgr.RegisterMotionMode(chr.MOTION_MODE_HORSE_ONEHAND_SWORD)
  937. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_1, "combo_01.msa")
  938. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_2, "combo_02.msa")
  939. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, chr.MOTION_COMBO_ATTACK_3, "combo_03.msa")
  940. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, COMBO_TYPE_1, 3)
  941. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  942. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  943. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  944. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_ONEHAND_SWORD, HORSE_SKILL_WILDATTACK, "skill_wildattack.msa")
  945. chrmgr.RegisterAttachingBoneName(chr.PART_WEAPON, "equip_right")
  946. if app.ENABLE_SASH_SYSTEM:
  947. chrmgr.RegisterAttachingBoneName(chr.PART_SASH, "Bip01 Spine2")
  948. def __LoadGameShamanEx(race, path):
  949. ## Shaman
  950. #########################################################################################
  951. chrmgr.SelectRace(race)
  952. ## GENERAL MOTION MODE
  953. SetGeneralMotions(chr.MOTION_MODE_GENERAL, path + "general/")
  954. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_COMBO_ATTACK_1, "attack.msa", 50)
  955. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_COMBO_ATTACK_1, "attack_1.msa", 50)
  956. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, 1)
  957. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_GENERAL, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  958. ## EMOTION
  959. emotion.RegisterEmotionAnis(path)
  960. ## Fan
  961. chrmgr.SetPathName(path + "fan/")
  962. chrmgr.RegisterMotionMode(chr.MOTION_MODE_FAN)
  963. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FAN, chr.MOTION_WAIT, "wait.msa")
  964. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FAN, chr.MOTION_WALK, "walk.msa")
  965. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FAN, chr.MOTION_RUN, "run.msa")
  966. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FAN, chr.MOTION_DAMAGE, "damage.msa", 50)
  967. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FAN, chr.MOTION_DAMAGE, "damage_1.msa", 50)
  968. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FAN, chr.MOTION_DAMAGE_BACK, "damage_2.msa", 50)
  969. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FAN, chr.MOTION_DAMAGE_BACK, "damage_3.msa", 50)
  970. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FAN, chr.MOTION_COMBO_ATTACK_1, "combo_01.msa")
  971. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FAN, chr.MOTION_COMBO_ATTACK_2, "combo_02.msa")
  972. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FAN, chr.MOTION_COMBO_ATTACK_3, "combo_03.msa")
  973. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FAN, chr.MOTION_COMBO_ATTACK_4, "combo_04.msa")
  974. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FAN, chr.MOTION_COMBO_ATTACK_5, "combo_05.msa")
  975. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FAN, chr.MOTION_COMBO_ATTACK_6, "combo_06.msa")
  976. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FAN, chr.MOTION_COMBO_ATTACK_7, "combo_07.msa")
  977. ## Combo Type 1
  978. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_1, 4)
  979. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  980. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  981. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  982. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_1, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_4)
  983. ## Combo Type 2
  984. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_2, 5)
  985. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_2, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  986. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_2, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  987. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_2, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  988. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_2, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
  989. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_2, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_7)
  990. ## Combo Type 3
  991. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_3, 6)
  992. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_3, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  993. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_3, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  994. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_3, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  995. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_3, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
  996. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_3, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_6)
  997. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_FAN, COMBO_TYPE_3, COMBO_INDEX_6, chr.MOTION_COMBO_ATTACK_4)
  998. ## Bell
  999. chrmgr.SetPathName(path + "Bell/")
  1000. chrmgr.RegisterMotionMode(chr.MOTION_MODE_BELL)
  1001. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BELL, chr.MOTION_WAIT, "wait.msa")
  1002. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BELL, chr.MOTION_WALK, "walk.msa")
  1003. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BELL, chr.MOTION_RUN, "run.msa")
  1004. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BELL, chr.MOTION_DAMAGE, "damage.msa", 50)
  1005. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BELL, chr.MOTION_DAMAGE, "damage_1.msa", 50)
  1006. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BELL, chr.MOTION_DAMAGE_BACK, "damage_2.msa", 50)
  1007. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BELL, chr.MOTION_DAMAGE_BACK, "damage_3.msa", 50)
  1008. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BELL, chr.MOTION_COMBO_ATTACK_1, "combo_01.msa")
  1009. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BELL, chr.MOTION_COMBO_ATTACK_2, "combo_02.msa")
  1010. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BELL, chr.MOTION_COMBO_ATTACK_3, "combo_03.msa")
  1011. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BELL, chr.MOTION_COMBO_ATTACK_4, "combo_04.msa")
  1012. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BELL, chr.MOTION_COMBO_ATTACK_5, "combo_05.msa")
  1013. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BELL, chr.MOTION_COMBO_ATTACK_6, "combo_06.msa")
  1014. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_BELL, chr.MOTION_COMBO_ATTACK_7, "combo_07.msa")
  1015. ## Combo Type 1
  1016. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_1, 4)
  1017. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  1018. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  1019. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  1020. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_1, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_4)
  1021. ## Combo Type 2
  1022. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_2, 5)
  1023. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_2, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  1024. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_2, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  1025. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_2, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  1026. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_2, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
  1027. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_2, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_7)
  1028. ## Combo Type 3
  1029. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_3, 6)
  1030. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_3, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  1031. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_3, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  1032. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_3, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  1033. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_3, COMBO_INDEX_4, chr.MOTION_COMBO_ATTACK_5)
  1034. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_3, COMBO_INDEX_5, chr.MOTION_COMBO_ATTACK_6)
  1035. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_BELL, COMBO_TYPE_3, COMBO_INDEX_6, chr.MOTION_COMBO_ATTACK_4)
  1036. ## SKILL
  1037. chrmgr.SetPathName(path + "skill/")
  1038. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+1, "bipabu.msa")
  1039. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+2, "yongpa.msa")
  1040. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+3, "paeryong.msa")
  1041. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+4, "hosin_target.msa")
  1042. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+5, "boho_target.msa")
  1043. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+6, "gicheon_target.msa")
  1044. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+16, "noejeon.msa")
  1045. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+17, "byeorak.msa")
  1046. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+18, "pokroe.msa")
  1047. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+19, "jeongeop_target.msa")
  1048. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+20, "kwaesok_target.msa")
  1049. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+21, "jeungryeok_target.msa")
  1050. #chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+10, "budong.msa")
  1051. START_INDEX = 0
  1052. #skill.SKILL_EFFECT_COUNT 까지//
  1053. for i in (1, 2, 3):
  1054. END_STRING = ""
  1055. if i != 0: END_STRING = "_%d" % (i+1)
  1056. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+1, "bipabu" + END_STRING + ".msa")
  1057. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+2, "yongpa" + END_STRING + ".msa")
  1058. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+3, "paeryong" + END_STRING + ".msa")
  1059. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+4, "hosin" + END_STRING + ".msa")
  1060. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+5, "boho" + END_STRING + ".msa")
  1061. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+6, "gicheon" + END_STRING + ".msa")
  1062. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+16, "noejeon" + END_STRING + ".msa")
  1063. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+17, "byeorak" + END_STRING + ".msa")
  1064. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+18, "pokroe" + END_STRING + ".msa")
  1065. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+19, "jeongeop" + END_STRING + ".msa")
  1066. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+20, "kwaesok" + END_STRING + ".msa")
  1067. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+21, "jeungryeok" + END_STRING + ".msa")
  1068. #chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SKILL+(i*skill.SKILL_GRADEGAP)+10, "budong" + END_STRING + ".msa")
  1069. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_DRAGONBLOOD, "guild_yongsinuipi.msa")
  1070. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_DRAGONBLESS, "guild_yongsinuichukbok.msa")
  1071. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_BLESSARMOR, "guild_seonghwigap.msa")
  1072. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_SPPEDUP, "guild_gasokhwa.msa")
  1073. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_DRAGONWRATH, "guild_yongsinuibunno.msa")
  1074. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_GENERAL, GUILD_SKILL_MAGICUP, "guild_jumunsul.msa")
  1075. ## FISHING
  1076. chrmgr.SetPathName(path + "fishing/")
  1077. chrmgr.RegisterMotionMode(chr.MOTION_MODE_FISHING)
  1078. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_WAIT, "wait.msa")
  1079. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_WALK, "walk.msa")
  1080. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_RUN, "run.msa")
  1081. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_THROW, "throw.msa")
  1082. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_WAIT, "fishing_wait.msa")
  1083. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_STOP, "fishing_cancel.msa")
  1084. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_REACT, "fishing_react.msa")
  1085. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_CATCH, "fishing_catch.msa")
  1086. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_FISHING, chr.MOTION_FISHING_FAIL, "fishing_fail.msa")
  1087. ## HORSE
  1088. chrmgr.SetPathName(path + "horse/")
  1089. chrmgr.RegisterMotionMode(chr.MOTION_MODE_HORSE)
  1090. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WAIT, "wait.msa", 90)
  1091. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WAIT, "wait_1.msa", 9)
  1092. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WAIT, "wait_2.msa", 1)
  1093. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_WALK, "walk.msa")
  1094. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_RUN, "run.msa")
  1095. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_DAMAGE, "damage.msa")
  1096. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_DAMAGE_BACK, "damage.msa")
  1097. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, chr.MOTION_DEAD, "dead.msa")
  1098. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, HORSE_SKILL_CHARGE, "skill_charge.msa")
  1099. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE, HORSE_SKILL_SPLASH, "skill_splash.msa")
  1100. ## HORSE_FAN
  1101. chrmgr.SetPathName(path + "horse_fan/")
  1102. chrmgr.RegisterMotionMode(chr.MOTION_MODE_HORSE_FAN)
  1103. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_FAN, chr.MOTION_COMBO_ATTACK_1, "combo_01.msa")
  1104. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_FAN, chr.MOTION_COMBO_ATTACK_2, "combo_02.msa")
  1105. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_FAN, chr.MOTION_COMBO_ATTACK_3, "combo_03.msa")
  1106. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_HORSE_FAN, COMBO_TYPE_1, 3)
  1107. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_FAN, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  1108. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_FAN, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  1109. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_FAN, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  1110. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_FAN, HORSE_SKILL_WILDATTACK, "skill_wildattack.msa")
  1111. ## HORSE_BELL
  1112. chrmgr.SetPathName(path + "horse_bell/")
  1113. chrmgr.RegisterMotionMode(chr.MOTION_MODE_HORSE_BELL)
  1114. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_BELL, chr.MOTION_COMBO_ATTACK_1, "combo_01.msa")
  1115. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_BELL, chr.MOTION_COMBO_ATTACK_2, "combo_02.msa")
  1116. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_BELL, chr.MOTION_COMBO_ATTACK_3, "combo_03.msa")
  1117. chrmgr.ReserveComboAttackNew(chr.MOTION_MODE_HORSE_BELL, COMBO_TYPE_1, 3)
  1118. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_BELL, COMBO_TYPE_1, COMBO_INDEX_1, chr.MOTION_COMBO_ATTACK_1)
  1119. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_BELL, COMBO_TYPE_1, COMBO_INDEX_2, chr.MOTION_COMBO_ATTACK_2)
  1120. chrmgr.RegisterComboAttackNew(chr.MOTION_MODE_HORSE_BELL, COMBO_TYPE_1, COMBO_INDEX_3, chr.MOTION_COMBO_ATTACK_3)
  1121. chrmgr.RegisterCacheMotionData(chr.MOTION_MODE_HORSE_BELL, HORSE_SKILL_WILDATTACK, "skill_wildattack.msa")
  1122. chrmgr.RegisterAttachingBoneName(chr.PART_WEAPON, "equip_right")
  1123. chrmgr.RegisterAttachingBoneName(chr.PART_WEAPON_LEFT, "equip_left")
  1124. if app.ENABLE_SASH_SYSTEM:
  1125. chrmgr.RegisterAttachingBoneName(chr.PART_SASH, "Bip01 Spine2")
  1126. def __LoadGameSkill():
  1127. try:
  1128. skill.LoadSkillData()
  1129. except:
  1130. import exception
  1131. exception.Abort("__LoadGameSkill")
  1132. def __LoadGameEnemy():
  1133. pass
  1134. def __LoadGameNPC():
  1135. try:
  1136. lines = pack_open("npclist.txt", "r").readlines()
  1137. except IOError:
  1138. import dbg
  1139. dbg.LogBox("LoadlocaleInfoError(%(srcFileName)s)" % locals())
  1140. app.Abort()
  1141. for line in lines:
  1142. tokens = line[:-1].split("\t")
  1143. if len(tokens) == 0 or not tokens[0]:
  1144. continue
  1145. try:
  1146. vnum = int(tokens[0])
  1147. except ValueError:
  1148. import dbg
  1149. dbg.LogBox("LoadGameNPC() - %s - line #%d: %s" % (tokens, lines.index(line), line))
  1150. app.Abort()
  1151. try:
  1152. if vnum:
  1153. chrmgr.RegisterRaceName(vnum, tokens[1].strip())
  1154. else:
  1155. chrmgr.RegisterRaceSrcName(tokens[1].strip(), tokens[2].strip())
  1156. except IndexError:
  1157. import dbg
  1158. dbg.LogBox("LoadGameNPC() - %d, %s - line #%d: %s " % (vnum, tokens, lines.index(line), line))
  1159. app.Abort()
  1160. # GUILD_BUILDING
  1161. def LoadGuildBuildingList(filename):
  1162. import uiGuild
  1163. uiGuild.BUILDING_DATA_LIST = []
  1164. handle = app.OpenTextFile(filename)
  1165. count = app.GetTextFileLineCount(handle)
  1166. for i in xrange(count):
  1167. line = app.GetTextFileLine(handle, i)
  1168. tokens = line.split("\t")
  1169. TOKEN_VNUM = 0
  1170. TOKEN_TYPE = 1
  1171. TOKEN_NAME = 2
  1172. TOKEN_LOCAL_NAME = 3
  1173. NO_USE_TOKEN_SIZE_1 = 4
  1174. NO_USE_TOKEN_SIZE_2 = 5
  1175. NO_USE_TOKEN_SIZE_3 = 6
  1176. NO_USE_TOKEN_SIZE_4 = 7
  1177. TOKEN_X_ROT_LIMIT = 8
  1178. TOKEN_Y_ROT_LIMIT = 9
  1179. TOKEN_Z_ROT_LIMIT = 10
  1180. TOKEN_PRICE = 11
  1181. TOKEN_MATERIAL = 12
  1182. TOKEN_NPC = 13
  1183. TOKEN_GROUP = 14
  1184. TOKEN_DEPEND_GROUP = 15
  1185. TOKEN_ENABLE_FLAG = 16
  1186. LIMIT_TOKEN_COUNT = 17
  1187. if not tokens[TOKEN_VNUM].isdigit():
  1188. continue
  1189. if len(tokens) < LIMIT_TOKEN_COUNT:
  1190. import dbg
  1191. dbg.TraceError("Strange token count [%d/%d] [%s]" % (len(tokens), LIMIT_TOKEN_COUNT, line))
  1192. continue
  1193. ENABLE_FLAG_TYPE_NOT_USE = False
  1194. ENABLE_FLAG_TYPE_USE = True
  1195. ENABLE_FLAG_TYPE_USE_BUT_HIDE = 2
  1196. if ENABLE_FLAG_TYPE_NOT_USE == int(tokens[TOKEN_ENABLE_FLAG]):
  1197. continue
  1198. vnum = int(tokens[TOKEN_VNUM])
  1199. type = tokens[TOKEN_TYPE]
  1200. name = tokens[TOKEN_NAME]
  1201. localName = tokens[TOKEN_LOCAL_NAME]
  1202. xRotLimit = int(tokens[TOKEN_X_ROT_LIMIT])
  1203. yRotLimit = int(tokens[TOKEN_Y_ROT_LIMIT])
  1204. zRotLimit = int(tokens[TOKEN_Z_ROT_LIMIT])
  1205. price = tokens[TOKEN_PRICE]
  1206. material = tokens[TOKEN_MATERIAL]
  1207. folderName = ""
  1208. if "HEADQUARTER" == type:
  1209. folderName = "headquarter"
  1210. elif "FACILITY" == type:
  1211. folderName = "facility"
  1212. elif "OBJECT" == type:
  1213. folderName = "object"
  1214. elif "WALL" == type:
  1215. folderName = "fence"
  1216. materialList = ["0", "0", "0"]
  1217. if material:
  1218. if material[0] == "\"":
  1219. material = material[1:]
  1220. if material[-1] == "\"":
  1221. material = material[:-1]
  1222. for one in material.split("/"):
  1223. data = one.split(",")
  1224. if 2 != len(data):
  1225. continue
  1226. itemID = int(data[0])
  1227. count = data[1]
  1228. if itemID == uiGuild.MATERIAL_STONE_ID:
  1229. materialList[uiGuild.MATERIAL_STONE_INDEX] = count
  1230. elif itemID == uiGuild.MATERIAL_LOG_ID:
  1231. materialList[uiGuild.MATERIAL_LOG_INDEX] = count
  1232. elif itemID == uiGuild.MATERIAL_PLYWOOD_ID:
  1233. materialList[uiGuild.MATERIAL_PLYWOOD_INDEX] = count
  1234. ## GuildSymbol 은 일반 NPC 들과 함께 등록한다.
  1235. import chrmgr
  1236. chrmgr.RegisterRaceSrcName(name, folderName)
  1237. chrmgr.RegisterRaceName(vnum, name)
  1238. appendingData = { "VNUM":vnum,
  1239. "TYPE":type,
  1240. "NAME":name,
  1241. "LOCAL_NAME":localName,
  1242. "X_ROT_LIMIT":xRotLimit,
  1243. "Y_ROT_LIMIT":yRotLimit,
  1244. "Z_ROT_LIMIT":zRotLimit,
  1245. "PRICE":price,
  1246. "MATERIAL":materialList,
  1247. "SHOW" : True }
  1248. if ENABLE_FLAG_TYPE_USE_BUT_HIDE == int(tokens[TOKEN_ENABLE_FLAG]):
  1249. appendingData["SHOW"] = False
  1250. uiGuild.BUILDING_DATA_LIST.append(appendingData)
  1251. app.CloseTextFile(handle)
  1252. # END_OF_GUILD_BUILDING
  1253. loadGameDataDict={
  1254. "INIT" : __InitData,
  1255. "SOUND" : __LoadGameSound,
  1256. "EFFECT" : __LoadGameEffect,
  1257. "WARRIOR" : __LoadGameWarrior,
  1258. "ASSASSIN" : __LoadGameAssassin,
  1259. "SURA" : __LoadGameSura,
  1260. "SHAMAN" : __LoadGameShaman,
  1261. "SKILL" : __LoadGameSkill,
  1262. "ENEMY" : __LoadGameEnemy,
  1263. "NPC" : __LoadGameNPC,
  1264. }
  1265. def LoadGameData(name):
  1266. global loadGameDataDict
  1267. load=loadGameDataDict.get(name, 0)
  1268. if load:
  1269. loadGameDataDict[name]=0
  1270. try:
  1271. load()
  1272. except:
  1273. print name
  1274. import exception
  1275. exception.Abort("LoadGameData")
  1276. raise
  1277. ## NPC
  1278. def SetMovingNPC(race, name):
  1279. chrmgr.CreateRace(race)
  1280. chrmgr.SelectRace(race)
  1281. ## RESERVED
  1282. chrmgr.SetPathName("d:/ymir work/npc/" + name + "/")
  1283. chrmgr.RegisterMotionMode(chr.MOTION_MODE_GENERAL)
  1284. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_WAIT, "wait.msa")
  1285. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_WALK, "walk.msa")
  1286. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_RUN, "run.msa")
  1287. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_DEAD, "die.msa")
  1288. chrmgr.LoadRaceData(name + ".msm")
  1289. def SetOneNPC(race, name):
  1290. chrmgr.CreateRace(race)
  1291. chrmgr.SelectRace(race)
  1292. ## RESERVED
  1293. chrmgr.SetPathName("d:/ymir work/npc/" + name + "/")
  1294. chrmgr.RegisterMotionMode(chr.MOTION_MODE_GENERAL)
  1295. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_WAIT, "wait.msa")
  1296. chrmgr.LoadRaceData(name + ".msm")
  1297. def SetGuard(race, name):
  1298. chrmgr.CreateRace(race)
  1299. chrmgr.SelectRace(race)
  1300. ## Script Data
  1301. chrmgr.SetPathName("d:/ymir work/npc/" + name + "/")
  1302. chrmgr.LoadRaceData(name + ".msm")
  1303. ## GENERAL
  1304. chrmgr.RegisterMotionMode(chr.MOTION_MODE_GENERAL)
  1305. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_SPAWN, "00.msa")
  1306. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_WAIT, "00.msa")
  1307. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_RUN, "03.msa")
  1308. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_DAMAGE, "30.msa", 50)
  1309. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_DAMAGE, "30_1.msa", 50)
  1310. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_DAMAGE_BACK, "34.msa", 50)
  1311. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_DAMAGE_BACK, "34_1.msa", 50)
  1312. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_DAMAGE_FLYING,"32.msa")
  1313. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_STAND_UP, "33.msa")
  1314. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_DAMAGE_FLYING_BACK, "35.msa")
  1315. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_STAND_UP_BACK, "36.msa")
  1316. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_DEAD, "31.msa")
  1317. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_DEAD_BACK, "37.msa")
  1318. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_NORMAL_ATTACK, "20.msa")
  1319. ## Attacking Data
  1320. chrmgr.RegisterNormalAttack(chr.MOTION_MODE_GENERAL, chr.MOTION_NORMAL_ATTACK)
  1321. def SetWarp(race):
  1322. chrmgr.CreateRace(race)
  1323. chrmgr.SelectRace(race)
  1324. chrmgr.SetPathName("d:/ymir work/npc/warp/")
  1325. chrmgr.LoadRaceData("warp.msm")
  1326. ## GENERAL
  1327. chrmgr.RegisterMotionMode(chr.MOTION_MODE_GENERAL)
  1328. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_WAIT, "wait.msa")
  1329. def SetDoor(race, name):
  1330. chrmgr.CreateRace(race)
  1331. chrmgr.SelectRace(race)
  1332. chrmgr.SetPathName("d:/ymir work/npc/"+name+"/")
  1333. chrmgr.LoadRaceData(name + ".msm")
  1334. chrmgr.RegisterMotionMode(chr.MOTION_MODE_GENERAL)
  1335. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_WAIT, "close_wait.msa")
  1336. chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_DEAD, "open.msa")
  1337. def SetGuildBuilding(race, name, grade):
  1338. chrmgr.CreateRace(race)
  1339. chrmgr.SelectRace(race)
  1340. chrmgr.SetPathName("d:/ymir work/guild/building/%s/" % name)
  1341. chrmgr.LoadRaceData("%s%02d.msm" % (name, grade))
  1342. chrmgr.RegisterMotionMode(chr.MOTION_MODE_GENERAL)
  1343. #chrmgr.RegisterMotionData(chr.MOTION_MODE_GENERAL, chr.MOTION_DEAD, name + "_destruction.msa")
  1344. def OLD_SetNPC():
  1345. SetOneNPC(9001, "arms")
  1346. SetOneNPC(9002, "defence")
  1347. SetOneNPC(9003, "goods")
  1348. SetOneNPC(9004, "bank")
  1349. SetOneNPC(9005, "hotel_grandfa")
  1350. SetOneNPC(9006, "hotel_grandma")
  1351. SetOneNPC(9007, "arms")
  1352. SetOneNPC(9008, "defence")
  1353. SetOneNPC(9009, "sailor")
  1354. SetMovingNPC(20001, "alchemist")
  1355. SetMovingNPC(20002, "auntie")
  1356. SetMovingNPC(20003, "baby_and_mom")
  1357. SetMovingNPC(20004, "beggar")
  1358. SetMovingNPC(20005, "ceramist")
  1359. SetMovingNPC(20006, "girl_lost_elder_brother")
  1360. SetMovingNPC(20007, "hotel_grandfa")
  1361. SetMovingNPC(20008, "mr_restaurant")
  1362. SetMovingNPC(20009, "oldster")
  1363. SetMovingNPC(20010, "peddler")
  1364. SetMovingNPC(20011, "plant_researcher")
  1365. SetMovingNPC(20012, "rice_cake_seller")
  1366. SetMovingNPC(20013, "sailor")
  1367. SetMovingNPC(20014, "timid_boy")
  1368. SetMovingNPC(20015, "woodcutter")
  1369. SetMovingNPC(20016, "blacksmith")
  1370. SetMovingNPC(20017, "musician")
  1371. SetMovingNPC(20018, "doctor")
  1372. SetMovingNPC(20019, "hunter")
  1373. SetMovingNPC(20020, "old_pirate")
  1374. SetMovingNPC(20021, "widow")
  1375. SetMovingNPC(20022, "young_merchant")
  1376. SetMovingNPC(20023, "bookworm")
  1377. SetMovingNPC(20024, "yu_hwa_rang")
  1378. SetMovingNPC(20041, "beggar")
  1379. SetMovingNPC(20042, "peddler")
  1380. SetGuard(20300, "sinsu_patrol_spear")
  1381. SetGuard(20301, "sinsu_patrol_spear")
  1382. SetGuard(20302, "sinsu_patrol_spear")
  1383. SetGuard(20303, "sinsu_patrol_spear")
  1384. SetGuard(20304, "sinsu_patrol_spear")
  1385. SetGuard(20305, "sinsu_patrol_spear")
  1386. SetGuard(20306, "sinsu_patrol_spear")
  1387. SetGuard(20307, "sinsu_patrol_spear")
  1388. SetGuard(20320, "gangyo_patrol_spear")
  1389. SetGuard(20321, "gangyo_patrol_spear")
  1390. SetGuard(20322, "gangyo_patrol_spear")
  1391. SetGuard(20323, "gangyo_patrol_spear")
  1392. SetGuard(20324, "gangyo_patrol_spear")
  1393. SetGuard(20325, "gangyo_patrol_spear")
  1394. SetGuard(20326, "gangyo_patrol_spear")
  1395. SetGuard(20327, "gangyo_patrol_spear")
  1396. SetGuard(20340, "jinno_patrol_spear")
  1397. SetGuard(20341, "jinno_patrol_spear")
  1398. SetGuard(20342, "jinno_patrol_spear")
  1399. SetGuard(20343, "jinno_patrol_spear")
  1400. SetGuard(20344, "jinno_patrol_spear")
  1401. SetGuard(20345, "jinno_patrol_spear")
  1402. SetGuard(20346, "jinno_patrol_spear")
  1403. SetGuard(20347, "jinno_patrol_spear")
  1404. ## Warp
  1405. for i in xrange(18):
  1406. SetWarp(10001 + i)
  1407. SetGuard(11000, "gangyo_patrol_spear")
  1408. SetGuard(11001, "gangyo_patrol_bow")
  1409. SetGuard(11002, "jinno_patrol_spear")
  1410. SetGuard(11003, "jinno_patrol_bow")
  1411. SetGuard(11004, "sinsu_patrol_spear")
  1412. SetGuard(11005, "sinsu_patrol_bow")
  1413. ## Campfire (Bonfire)
  1414. chrmgr.CreateRace(12000)
  1415. chrmgr.SelectRace(12000)
  1416. chrmgr.SetPathName("d:/ymir Work/npc/campfire/")
  1417. chrmgr.LoadRaceData("campfire.msm")
  1418. ## Door
  1419. SetDoor(13000, "wooden_door")
  1420. SetDoor(13001, "stone_door")

playersettingmodule.py